Android 无法使用绝对布局在屏幕中部准确地定位视图 我试图用绝对布局在屏幕中间定位一个视图。
首先,我得到屏幕的像素高度Android 无法使用绝对布局在屏幕中部准确地定位视图 我试图用绝对布局在屏幕中间定位一个视图。,android,Android,首先,我得到屏幕的像素高度 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int height_px = size.y; 其次,我将屏幕高度转换为密度像素 Resources resources = this.getResources(); DisplayMetrics metri
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height_px = size.y;
其次,我将屏幕高度转换为密度像素
Resources resources = this.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
float height_dp = height_px / (metrics.densityDpi / 160f);
然后我打印出屏幕高度的值,以密度像素为单位进行测试
Log.v("TAG height: ", String.valueOf(height_dp)); // prints 640
最后,我将第二个视图的y偏移设置为640(320)的一半
使用此选项可能会有所帮助:
ImageView iv = new ImageView(this);
AbsoluteLayout.LayoutParams params = new AbsoluteLayout.LayoutParams(30, 40);
params.leftMargin = 50;
params.topMargin = 60;
rl.addView(iv, params);
根据需要更改值。@prole:绝对布局
已被弃用。请使用其他布局@哎呀,这是我知道的唯一一种在屏幕外定位视图的方法。你说的屏幕外是什么意思?你为什么不直接使用重心呢?我需要屏幕外的第二个视图,这样我就可以在屏幕上设置动画显示=状态栏+动作栏+绝对布局,这样你就可以计算什么是显示-状态栏-动作栏解决方案是将状态栏和动作栏的高度增加一半
ImageView iv = new ImageView(this);
AbsoluteLayout.LayoutParams params = new AbsoluteLayout.LayoutParams(30, 40);
params.leftMargin = 50;
params.topMargin = 60;
rl.addView(iv, params);