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);