如何在Android中针对各种屏幕分辨率在固定位置显示控件?

时间:2009-12-22 13:50:12

标签: android android-layout

如何在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" />

我没有解决方案,所以请给我一些解决问题的想法。

3 个答案:

答案 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会有所帮助!