android 获取控件宽高的方法

本文介绍了在Android中如何获取控件的宽高。直接在onCreate中获取会得到0,而通过View.post(Runnable action)可以在视图布局完成后再获取到正确的宽高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 直接获取宽高

布局:

<TextView
    android:id="@+id/textview"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:background="#f00"
    android:text="Hello World!"/>

Java:

mTextView = (TextView) findViewById(R.id.textview);
mWidth = mTextView.getWidth();
mHeight = mTextView.getHeight();
Log.d(TAG, " width = " + mWidth + "   height = " + mHeight);

Log:

 width = 0   height = 0

由此可见,在onCreate中直接获取宽高得到的都是0

2. 通过 View.post(Runnable action)

代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTextView = (TextView) findViewById(R.id.textview);


    mTextView.post(new Runnable() {
        @Override
        public void run() {
            mWidth = mTextView.getWidth();
            mHeight = mTextView.getHeight();
            Log.d(TAG, "width = " + mWidth + "   height = " + mHeight);
        }
    });

Log:

width = 600   height = 600

所以,在onCreate中可以使用View.post方法替代直接getWidth()和getHeight()来获取宽高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛君LuoKing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值