ImageView.getWidth()返回0 [英] ImageView.getWidth() returns 0

查看:580
本文介绍了ImageView.getWidth()返回0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到的ImageView宽度为0。下面是code。

I get imageView's width 0. Below is code.

XML文件:

<ImageView
        android:id="@+id/img"
        android:layout_width="200dp"
        android:layout_height="200dp" />

活动:

@Override
protected void onResume() {
    super.onResume();
    ImageView img = (ImageView) findViewById(R.id.img);
    Log.d(TAG, "width : " + img.getWidth());
}

我不希望低于code使用的,因为我需要把这个code在很多地方。

I don't want to use below code as I need to place this code in so many places.

ViewTreeObserver vto = img.getViewTreeObserver();
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        public boolean onPreDraw() {
            ImageView img = (ImageView) findViewById(R.id.img);
                    Log.d(TAG, "width : " + img.getWidth());
            return true;
        }
    });

我的解决方法: 其实我后来也没必要添加此code中的活动。我把它添加到替代的ImageView宽度我用位图图像的宽度的非活性类,现在不存在这个问题。

My workaround : I actually later did not need to add this code in an activity. I added it to a non-activity class and instead of ImageView's width I used Bitmap image's width and now does not have this problem.

推荐答案

如果你调用的getWidth()的getHeight()上ImageView的?如果从的onCreate调用()的活动,它不会工作。你需要等待活动的窗口,连接,然后调用的getWidth()和getHeight()上ImageView的。你可以尝试调用的getWidth()和你的活动的getHeight() onWindowFocusChanged()方法。

Where you calling getWidth() and getHeight() on ImageView? If you calling from onCreate() in activity, it won't work. You need to wait for activity window to attached and then call getWidth() and getHeight() on ImageView. You can try calling getWidth() and getHeight() from onWindowFocusChanged() method of your activity.

呼吁onWindowFocusChanged像这样

call on onWindowFocusChanged like this way

public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);

        ImageView img = (ImageView) findViewById(R.id.img);
        Log.d(TAG, "width : " + img.getWidth());

    }

这篇关于ImageView.getWidth()返回0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆