android - 为什么我在使用 imageView.getWidth() 时得到 0 值

标签 android

我想从 imageView 对象获取宽度值,但是当我运行以下代码时,它返回一个 0 值。为什么我在使用 imageView.getWidth() 时得到 0 值?我该如何解决这个问题?

public class MainActivity extends Activity {
ImageView imageView;
TextView textView;


 protected void onCreate(Bundle bundle) {
 super.onCreate(bundle);
 setContentView(R.layout.activity_main);
 imageView= (ImageView) findViewById(R.id.imageView);
 textView = (TextView) findViewById(R.id.textView);
 Integer i = imageView.getWidth();
 textView.setText(i.toString());
    }}

最佳答案

像这样在 post 方法中简单地读取 ImageView 的宽度:

public class MainActivity extends Activity {
    ImageView imageView;
    TextView textView;

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_main);
        imageView = (ImageView) findViewById(R.id.imageView);
        textView = (TextView) findViewById(R.id.textView);
        imageView.post(new Runnable() {
            @Override
            public void run() {
                Integer i = imageView.getWidth();
                textView.setText(i.toString());
            }
        });
    }
}

一旦 ImageView 的所有生命周期方法都被调用,post 回调就会执行,这意味着整个 View 已经被测量,因此您有一个适当的 View 宽度。

这有帮助吗?

关于android - 为什么我在使用 imageView.getWidth() 时得到 0 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445717/

相关文章:

android - 如何在 react native> 中从一个屏幕导航到另一个屏幕?

java - 如何将数据库服务器的更新反射(reflect)到网站和Android应用程序(即时)?

android - android 可以控制z轴吗?

android - aChartEngine:如何在图表和 y 轴标签之间添加填充

android - 点燃火 : in full screen mode the menu bar appears when launching a dialogfragment

java - 在 ImageVIew 上绘制矩形

android - Android Studio无法构建新项目

android - React Native - 如果应用程序 Y 已安装,应用程序 X 如何打开应用程序 Y

java - ListView 空指针异常

android - Compose 中的列权重分布