麻烦抓住Android中的dp单元

时间:2013-04-07 14:26:38

标签: android android-layout

所以,我已经google了很多,但仍然无法安静地掌握这个概念。我有3个文件夹:xhdpi,lhdpi和mhdpi。我确实理解不同倾角和屏幕密度的转换和缩减。 Android会在应用程序运行时为正确的屏幕类型选择资源。

但是,我该如何开始?我在Photoshop中为我的应用程序做了一个背景。背景在720x1080px中定义并导出为.png文件。我把.png放在xhdpi文件夹中。我的索尼Xperia Z上的所有功能都很好,但是当朋友将它装在他的Galaxy 3上时,背景是“小到”并且不适合他的屏幕。我认为这是因为bacground很小。

但我需要多大才能成功呢?什么px-sizes应该xhdpi可绘制资源适合每个xhdpi屏幕?

一个好的方法是从最大的大小开始,xhdpi?然后将drawables转换为mdpi和ldpi?如果是这样,我需要 px 中的初学者大小,以便我可以在Photoshop中为应用程序创建背景。

以下是我如何使用背景:(注意,我将我的身高改为fill_parent,修复了“未填满整个屏幕的问题”)

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/bg_xhdpi" >
     </RelativeLayout>

2 个答案:

答案 0 :(得分:1)

要使PX尺寸适当缩放,您需要使用以下比例进行缩放:

XDPI为2X

HDPI为1.5X

MDPI为1X(基线

.75X for LDPI

在代码(或XML)中指定大小时,请使用DP参数指定值(如果指定字体,则使用SP)。 例如:android:layout_marginLeft="12dp"

以下是文档:http://developer.android.com/guide/practices/screens_support.html,您会注意到此图片以及描述此内容的许多其他详细信息。

enter image description here

答案 1 :(得分:0)

您可以在this table中找到不同设备屏幕密度和分辨率的简报;根据它,Galaxy SIII是xhdpi,分辨率为1280 X 720.此外,您可能需要考虑遵循compatibility mode guide以避免在多个屏幕中呈现问题。