android如何获取控件宽度
如下列代码,经测试,Toast显示width2确实为控件TextView的宽度,但显示的width1仍然为初始值0,如何将width2的值赋给全局变量width1呢?求大...
如下列代码,经测试,Toast显示width2确实为控件TextView的宽度,但显示的width1仍然为初始值0,如何将width2的值赋给全局变量width1呢?求大神们指教!
public class MainActivity extends Activity {
private TextView txt = null;
private int width1 = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView) findViewById(R.id.txt);
ViewTreeObserver vto = txt.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int width2 = txt.getMeasuredWidth();
Toast.makeText(getApplication(), "width2:" + width2, Toast.LENGTH_SHORT).show();
width1 = width2;
return true;
}
});
Toast.makeText(getApplication(), "width1:" + width1, Toast.LENGTH_SHORT).show();
}
} 展开
public class MainActivity extends Activity {
private TextView txt = null;
private int width1 = 0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = (TextView) findViewById(R.id.txt);
ViewTreeObserver vto = txt.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int width2 = txt.getMeasuredWidth();
Toast.makeText(getApplication(), "width2:" + width2, Toast.LENGTH_SHORT).show();
width1 = width2;
return true;
}
});
Toast.makeText(getApplication(), "width1:" + width1, Toast.LENGTH_SHORT).show();
}
} 展开
2个回答
展开全部
用getWidth()方法,可以获取像素单位的宽度。
android的控件一般是继承的android.View这个类,所以可以直接用View#getWidth()方法获取控件宽度。另外这个方法是final方法,无法被子类覆盖,所以可以安心调用
android的控件一般是继承的android.View这个类,所以可以直接用View#getWidth()方法获取控件宽度。另外这个方法是final方法,无法被子类覆盖,所以可以安心调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |