[Java Android] Wie eigene simple ViewGroup schreiben?

T

Tersus

Gast
Guten Abend,

MainActivity:
Code:
package com.example.androidtests;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		Button b1 = new Button(this);
		b1.setText("Button1");
		Button b2 = new Button(this);
		b2.setText("Button2");
		
		SimpleViewGroup svg = new SimpleViewGroup(this);
		svg.addView(b1);
		svg.addView(b2);
		
		setContentView(svg);
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

ViewGroup:
Code:
package com.example.androidtests;

import android.content.Context;
import android.graphics.Rect;
import android.view.View;
import android.view.ViewGroup;

public class SimpleViewGroup extends ViewGroup {

	private Rect[] Rahmen;
	
	
	public SimpleViewGroup(Context context) {
		super(context);

		Rahmen = new Rect[2];		
		
	}

	@Override
	protected void onLayout(boolean arg0, int l, int t, int r, int b) {

		Rahmen[0] = new Rect(l, t, r/2, b/2);
		Rahmen[1] = new Rect(r/2, b/2, r, b);
				
		View Aktuell = null;
		
		for(int z = 0; z < Rahmen.length; z++){
			
			Aktuell = getChildAt(z);
			
			if(Aktuell != null)
				Aktuell.layout(Rahmen[z].left, Rahmen[z].top, Rahmen[z].right, Rahmen[z].bottom);
			
			
		}

	}

}

Wieso wird die Schrift der Buttons nicht zentriert, wie es bei anderen Layouts der Fall ist?
 
Zuletzt bearbeitet von einem Moderator:
Weiß ich nicht mehr. Ich habe den Code etwas verändert. K. A. warum die Anwendung abgeschmiert ist.

Nun funktioniert sie. Meine Frage ist nun:

Ein Button hat die Eigenschaft, seinen Text, den er repräsentiert, immer horizontal und vertikal zu zentrieren.
Wieso ist das bei meiner SimpleViewGroup nicht der Fall?
 
Zurück
Oben