0

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

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

4

3 回答 3

1

如果您希望您的布局在不同分辨率的屏幕上工作,您应该使用它们dip作为单位来调整它们的大小。例如:

android:layout_marginRight="10dip"

dip代表 Device Independent Pixel 并在您的布局中使用它们意味着 Android 将根据运行您的应用程序的设备具有的显示器自动缩放您的布局。

您可以在 Android 开发者文档的Supporting Multiple Screens页面中了解这些内容。本文档还提供了一些其他选项来处理不同的显示,但我认为使用dip可能是最简单的。

于 2009-12-22T15:12:29.767 回答
0

这取决于您如何定义布局:发布布局 XML 会有所帮助。

于 2009-12-22T14:22:33.817 回答
0

我猜如果它在中间你有类似的东西:

android:layout_gravity="center"

但是,是的,发布您的 XML 会有所帮助!

于 2009-12-22T14:25:10.037 回答