Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onSizeChanged返回宽度,但不返回高度_Java_Android_Layout - Fatal编程技术网

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

Java onSizeChanged返回宽度,但不返回高度,java,android,layout,Java,Android,Layout,我需要获得视图的高度和宽度,我已经按照这里给出的示例对视图进行了子类化并使用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; }

我需要获得视图的高度和宽度,我已经按照这里给出的示例对视图进行了子类化并使用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">

我认为这很正常,您的视图中没有内容,因此高度为0

尝试在自定义文本视图中添加一些文本,高度将更改

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

设备屏幕尺寸:

可以(我是StackOverflow新手)。但我的问题的解决方案是什么?所有发现的示例都没有提到这种情况?现在有提到,但高度仍然为0。当旋转设备时,我会改变宽度,但不会改变高度。我需要得到设备屏幕的尺寸。我是否采取了正确的方法?DisplayMetrics类可以检索设备屏幕尺寸