Android获取控件的宽和高
Posted blfbuaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android获取控件的宽和高相关的知识,希望对你有一定的参考价值。
有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式:
1. onWindowFocusChanged
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
if (hasFocus)
{
int width = image.getMeasuredWidth();
int height = image.getMeasuredHeight();
Toast.makeText(MainActivity.this, "width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show();
}
}
2. post方式
@Override
protected void onStart()
{
super.onStart();
image.post(new Runnable()
{
@Override
public void run()
{
int width = image.getMeasuredWidth();
int height = image.getMeasuredHeight();
Toast.makeText(MainActivity.this, "onstart--width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show();
}
});
}
3. ViewTreeObserver
ViewTreeObserver observer = image.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{
image.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int width = image.getMeasuredWidth();
int height = image.getMeasuredHeight();
Toast.makeText(MainActivity.this, "onglobal--width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show();
}
});
备注:以上image是ImageView控件
ImageView image = (ImageView)findViewById(R.id.image);
以上是关于Android获取控件的宽和高的主要内容,如果未能解决你的问题,请参考以下文章
C++ 怎么用代码更改按钮控件宽和高,或者用代码来更改文本框的宽和高,刚接触C++请大虾门多多指教。
Android查缺补漏(View篇)--在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0?