android 不同尺寸不起作用

android different dimens not working

我的值文件夹中有四个 dimens.xml 文件,不同的 dimens.xml 文件有不同的值。 例如,在 dimens.xml(hdpi) u_video_width 中是 306dp 而 dimens.xml(xhdpi)u_video_width 是 404dp.but 这个值不起作用,因为当我 运行 我在 Nexus S (480X800) hdpi 模型 genymotion 中的应用

这是我的视图的样子:

[![这是我的视图的样子][1]][1]

正如我在 hdpi dimens 文件夹中所说的那样,我有 302dp,但是当我 运行 我的应用程序时我有不同的宽度(在 XML activity 文件中) 这是我的XML代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="#D53362">



<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true">
    <VideoView
        android:layout_width="@dimen/u_video_width"
        android:layout_height="@dimen/u_video_height"
        android:id="@+id/video_view"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

这是我的 dimens xml 个文件

Nexus S 具有 480X800 分辨率,我希望我的 VideoView 具有 302dp 的 hdpi 分辨率和另一个分辨率 -- 另一个 dpi 如何解决我的问题?

据我所知,它似乎工作正常。你的屏幕是 480px 宽,你的 VideoView 是 306dp(在 hdpi 屏幕~453px),因为它是 centered,它仍然一点保证金。

如果您想要在另一个分辨率下使用相同的 dp,只需从其他文件中删除 u_video_width

要使相同的尺寸在更高 dpi 的设备上显示相同 android 将这些尺寸乘以常数即

对于 mdpi 是 1x

hdpi 1.5x

xhdpi 2x

xxhdpi 3x

所以你的情况是 306 * 1.5 = 459px

space 的重置 (14dp ~35 px) 在 VideoView

的两侧可用

请参考android developer page

至少我是这么理解的。希望对你有帮助。