图像视图getWidth()和getHeight()为kyocera手机返回0

时间:2014-09-24 06:39:48

标签: android android-imageview

iam正在处理一个项目,我需要高度为图像视图的宽度,我只是简单地调用getwidth()getheight()这样

int targetW = mImageView.getWidth() ;
int targetH = mImageView.getHeight();

它适用于所有类型的Android手机,但当我尝试kyocera水电手机时它返回零! 我在图像视图呈现到屏幕之后调用它是肯定的,因为我在单击视图本身时调用它们。

有什么建议吗?

EDITED: 除Kyocera Hydro手机外,所有手机都能正常使用

1 个答案:

答案 0 :(得分:1)

试试这个

mImageView.getViewTreeObserver().addOnGlobalLayoutListener(
            new OnGlobalLayoutListener() {

                @Override
                public void onGlobalLayout() {
                    Toast.makeText(getContext(), mImageView.getWidth() + "", Toast.DURATION_SHORT).show();

                    // remove OnGlobalLayoutListener, check Android version too
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
                        mImageView.getViewTreeObserver()
                                .removeOnGlobalLayoutListener(this);
                    else
                        mImageView.getViewTreeObserver()
                                .removeGlobalOnLayoutListener(this);
                }
            });