在 Android 模拟器中,浸入 xml 不适用于不同的屏幕密度

发布于 2024-10-29 02:35:58 字数 1081 浏览 4 评论 0原文

我正在 android 中测试多 dpi,布局 xml 文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@drawable/new_album_bg">
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello" />
    <RelativeLayout android:gravity="center"
        android:paddingTop="400dip" android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <EditText android:background="@drawable/name_text_bg"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:gravity="center" />
    </RelativeLayout>
</RelativeLayout>

当我在 480x800 mdpi(160) 模拟器(缩放至 7 英寸)上运行它时,它工作正常,但在 480x800 hdpi 模拟器上,它填充EditText 向下到屏幕底部附近,接近 600px,是 400dip x 240 / 160 吗?即使我将其缩放到 4 英寸,它似乎与屏幕尺寸没有任何区别。如何让padding在不同的屏幕密度下发挥作用?多谢!

I'm testing multi dpi in android, and the layout xml file seems like this:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@drawable/new_album_bg">
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello" />
    <RelativeLayout android:gravity="center"
        android:paddingTop="400dip" android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <EditText android:background="@drawable/name_text_bg"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:gravity="center" />
    </RelativeLayout>
</RelativeLayout>

When I run it on a 480x800 mdpi(160) simulator (scale to 7 inches), it works fine, but on a 480x800 hdpi simulator, it PADDING the EditText down to the near bottom of the screen, nearly 600px, is that 400dip x 240 / 160 ? And It seems has no difference with screen size even I scaled it to 4 inches. How to let padding work under different screen density? Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你再特殊 2024-11-05 02:35:58
How to let padding work under different screen density? 

您可以在不同的文件夹中创建具有不同填充的不同布局 xml,例如

res/layout-mdpi 
res/layout-hdpi

然后 android 将选择适当的布局 xml
关于dp(Dip)
dp 将保证视图在当前设备屏幕上具有适当的大小。例如,具有 layout_width="100dp" 的视图将在 HVGA@160 密度 显示屏上测量 100 像素 宽度,150 WVGA@240 密度 显示器上的像素,但视图将占据大致相同的物理空间。

有关更多详细信息,请参阅支持多个屏幕

How to let padding work under different screen density? 

you can create different layout xml with different padding in different folders like

res/layout-mdpi 
res/layout-hdpi

Then the android will select the appropriate layout xml
About dp(Dip)
dp will guarantee that the view is given an appropriate size on the current device screen. For instance, a view with a layout_width="100dp" will measure 100 pixels wide on an HVGA@160 density display and 150 pixels on a WVGA@240 density display, but the view will occupy approximately the same physical space.

For more details refer this Supporting Multiple Screens

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文