最近开发android的时候,发现按钮如果设置固定大小,就会造成在一些小屏幕的显示异常的问题
因此想根据屏幕大小动态的设置按钮大小,但是发现 getHeight() 的时候获取高度为0
后来发现是因为在跳转Activit的时候按钮还没有生成成功,故按钮的高度为0
因此我们可以在按钮生成完成之后在调用方法,就可以获取到高度
int widthPixels = displayMetrics.widthPixels; // 屏幕宽度(像素)
int heightPixels = displayMetrics.heightPixels; // 屏幕高度(像素)
float density = displayMetrics.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = displayMetrics.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
Log.i(TAG, "widthPixels: "+widthPixels);
Log.i(TAG, "heightPixels: "+heightPixels);
Log.i(TAG, "density: "+density);
Log.i(TAG, "densityDpi: "+densityDpi);
// 这里会在按钮 生成完成后进行回调
button.post(new Runnable() {
@Override
public void run() {
Log.i(TAG, "按钮id: "+resID+";按钮高度"+button.getHeight() );
}
});
评论区