Afaik 分辨率与密度有关(如果我错了,请纠正我),我的目标是根据设备的密度使用三种布局之一。2.3.3(最流行的 atm)sdk 版本有哪些选择?谢谢你。
3 回答
并不真地。
有两个主要方面需要考虑:
- 屏幕密度。ldpi、mdpi、hdpi、xhdpi。这是每英寸的像素数。它与像素(而不是屏幕)的大小有关。
- 屏幕尺寸。small、normal、large、x-large - 或由像素大小指定。这与实际的物理尺寸有关。
您如何使用它们取决于您的项目需求。通常,您会提供各种密度的图像(因此图标等在所有设备上看起来都不错),但如果您正在构建一个应用程序以在非常不同尺寸的设备(小型手机到 10 英寸平板电脑)上运行良好,您还应该提供布局适用于各种尺寸的屏幕 - 一种用于手机,一种用于 7 英寸平板电脑,一种用于 10 英寸平板电脑。
http://developer.android.com/guide/practices/screens_support.html
查看有关支持多个屏幕的 android 文档- 要点是您可以拥有多个具有不同命名约定的文件夹,这些文件夹基于一系列事物(屏幕密度、屏幕尺寸、纵向/横向等)来定位设备,它们可以尽可能模糊或详细。例如,如果您想针对所有 xhdpi 设备创建一个名为“layout-xhdpi”的布局文件夹,在其中创建一个布局,所有 xhdpi 设备都将使用它。如果您想更具体,例如专门针对 Galaxy Nexus,您可以创建一个名为“layout-w360dp-port-xhdpi”的文件夹。
我更喜欢做的另一种方法是拥有一个布局文件并拥有多个针对不同屏幕尺寸的“值”xml文件,并在值文件中更改填充/高度的值并指向布局中的这些值。例如在'values/dimensions.xml'
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="webview_height">53dip</dimen>
<resources>
然后在您的布局中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="vertical" >
<WebView
android:layout_height="@dimen/webview_height"
android:id="@+id/mainWebViewMobile"
android:layout_width="match_parent"
></WebView>
</LinearLayout>
您可以在针对不同设备的单独文件夹中创建多个 dimension.xml(例如“values-xhdpi/dimensions.xml”或“values-w360dp-port-xhdpi/dimensions.xml”)并更改“webview_height”的值。
只需为每个密度创建不同的布局并将其放在适当的文件夹中
从 android 文档中查看:http: //developer.android.com/guide/practices/screens_support.html#qualifiers
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res/drawable-mdpi/my_icon.png // bitmap for medium density
res/drawable-hdpi/my_icon.png // bitmap for high density
res/drawable-xhdpi/my_icon.png // bitmap for extra high density