如何在Android中针对各种屏幕分辨率在固定位置显示控件?
我的屏幕设计如下
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/img_background_loadbackground">
<TableRow>
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="300sp"/>
</TableRow>
<TableRow>
</TableRow>
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</TableLayout>
它工作在HVGA(320x480)分辨率,进度条显示在屏幕底部,但如果我以其他分辨率(WQVGA432 - 240x432)运行,则进度条出现在屏幕中间。我无法在固定的位置展示它。
我正在使用下面的清单文件,但没有输出
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
我没有解决方案,所以请给我一些解决问题的想法。
答案 0 :(得分:1)
如果您希望布局在不同的分辨率屏幕上工作,则应使用dip
作为单位调整大小。例如:
android:layout_marginRight="10dip"
dip
代表Device Independent Pixel,在您的布局中使用这些设备意味着Android会根据运行应用程序的设备显示的内容自动调整布局。
您可以在Supporting Multiple Screens page in the Android Developer Documentation中了解这些内容。本文档还有其他一些处理不同显示的选项,但我认为使用dip
可能是最简单的。
答案 1 :(得分:0)
这取决于您如何定义布局:发布布局XML将有助于此。
答案 2 :(得分:0)
我想如果它在中间你有类似的东西:
android:layout_gravity="center"
但是,发布您的XML会有所帮助!