我正在尝试使用绝对布局在屏幕中间放置视图。
首先,我得到屏幕高度(以像素为单位)
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
最后,我将第二个视图purple_view
的y偏移设置为640(320)的一半。
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
tools:context=".MainActivity">
<View
android:id="@+id/white_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFF0"
android:layout_y="0dp"
/>
<View
android:id="@+id/purple_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0FF0"
android:layout_y="320dp"
/>
</AbsoluteLayout>
但是,purple_view
视图并未完全位于屏幕中间。
答案 0 :(得分:0)
使用它可能有所帮助:
ImageView iv = new ImageView(this);
AbsoluteLayout.LayoutParams params = new AbsoluteLayout.LayoutParams(30, 40);
params.leftMargin = 50;
params.topMargin = 60;
rl.addView(iv, params);
根据需要更改值。