onSizeChanged返回宽度,但不返回高度

时间:2012-01-08 12:04:19

标签: java android layout

我需要获取View的高度和宽度,并且我已经按照这里给出的子类View和使用onSizeChanged(...)进行了示例。 但是很奇怪的是onSizeChanged给了我正确的宽度,但是高度总是0.这是我的子类:

public class MyView extends TextView {
int xMax=0; int yMax=0;Context c;

public MyView(Context context) {
    super(context);
    this.c=context;

}
@Override
   public void onSizeChanged(int w, int h, int oldW, int oldH) {

      xMax = w;
      yMax = h;

我的活动课程:

public void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TextView dummyView = new MyView(this);

    LinearLayout ll = (LinearLayout) findViewById(R.id.mainmtc);
    ll.addView(dummyView);

和我的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainmtc" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1"
androiad:orientation="vertical">

1 个答案:

答案 0 :(得分:2)

我认为这是正常的,视图中没有内容,所以高度为0。

尝试在自定义textview中添加一些文字,高度会发生变化

TextView dummyView = new MyView(this);
dummyView.setText("Hello");

设备屏幕尺寸:http://developer.android.com/reference/android/util/DisplayMetrics.html