gpt4 book ai didi

java - ImageView.getWidth() 返回 0

转载 作者:IT老高 更新时间:2023-10-28 21:04:20 26 4
gpt4 key购买 nike

我得到 imageView 的宽度为 0。下面是代码。

xml 文件:

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

Activity :

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

我不想使用下面的代码,因为我需要将这段代码放在很多地方。

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;
}
});

我的解决方法:我实际上后来不需要在 Activity 中添加此代码。我将它添加到非 Activity 类中,而不是 ImageView 的宽度,我使用了位图图像的宽度,现在没有这个问题。

最佳答案

您在 ImageView 上调用 getWidth()getHeight() 的位置?如果您在 Activity 中从 onCreate() 调用,它将不起作用。您需要等待 Activity 窗口附加,然后在 ImageView 上调用 getWidth() 和 getHeight()。您可以尝试从您的 Activity 的 onWindowFocusChanged() 方法调用 getWidth() 和 getHeight()

像这样调用 onWindowFocusChanged

public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
ImageView img = (ImageView) findViewById(R.id.img);
Log.d(TAG, "width : " + img.getWidth());
}

}

关于java - ImageView.getWidth() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19271609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com