android - 无法支持多种屏幕分辨率

标签 android android-layout android-relativelayout

我正在努力完成我的 Android 应用程序,但我在 UI 方面遇到了一些问题。我的问题非常基本,我在 Eclipse 中使用 AVD 管理器(HVGA,密度为 160 dpi)时使用默认 AVD 开发了 UI,当我执行应用程序时,我看到了我设计的,但如果我改变目标设备(即 WVGA 或 QVGA)布局中的所有组件都位于与原始设备不同的位置。据我在支持多屏幕的建议中看到的,我不应该使用 AbsoluteLayouts,事实上我正在使用 RelativeLayouts,我没有使用“px”作为尺寸(或位置),只是“wrap_content”或“fill_parent” ”,如果我需要一个特定的位置,我正在使用“dp”(也用“sp”进行了测试),我还为 ldpi (0.75x) 缩放了图像,但仍然有问题(不是特定的屏幕, hole app) ...所以,我的问题是,是否还有其他我遗漏的 UI 提示?
我放了一个示例代码和我在使用 HVGA AVD(大图)和 QVGA AVD 对其进行测试时观察到的结果。如您所见,黄色/绿色方 block 的位置不同,最后一行图像的大小也不同。
PS:我也在使用TabLayout,所以背景是通过代码加载的(tabHost.setBackgroundDrawable(getResources()。getDrawable(R.drawable.background1)))
任何帮助将不胜感激。

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/row1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="140dp"
    >
    <ImageView
        android:id="@+id/btn1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:clickable="true"
        android:onClick="method1"
        android:src="@drawable/button1"
    />
    <ImageView
        android:id="@+id/btn2"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:clickable="true"
        android:onClick="method1"
        android:src="@drawable/button2"
    />
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@id/row1"
        android:layout_centerHorizontal="true"
    >
    <ImageView
        android:id="@+id/btn3"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:clickable="true"
        android:onClick="method1"
        android:src="@drawable/button3"
    />
    <ImageView
        android:id="@+id/btn4"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:clickable="true"
        android:onClick="method1"
        android:src="@drawable/button4"
    />
    </LinearLayout>
</RelativeLayout>

screen at 240x320 screen at 320x480

最佳答案

你的布局对我来说看起来不错,除了背景上有那个白框标题,因为它会更难把东西放在他们的位置。此外,RelativeLayout 没有方向但会被忽略。

在更大的屏幕截图中,白框和屏幕顶部之间似乎有更多空间。对我来说没有意义的是第二行的尺寸不同。您是否 100% 确定在较小的屏幕截图中加载了正确的图像?

关于android - 无法支持多种屏幕分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425307/

相关文章:

android - XMPP (Openfire) 推送通知 Android

android - ImageView - 如何以编程方式膨胀或添加?

android - 使用 zxing 条码扫描器创建产品数据库将数据添加到数据库问题

java - EditText View 不在新行上扩展

android - 如何将图像按钮包装在水平线性布局中?

android - 即时添加多个按钮

multithreading - Android ProgressBar 停止更新

android - 如何将菜单项添加到 Web View 的上下文操作栏菜单

android - TextView 不适合 ScrollView

java - 以编程方式将单选按钮与右侧的文本和左侧的按钮对齐