Afaik分辨率与密度有关(如果我错了,请纠正我),我的目标是根据设备的密度使用三种布局中的一种。 2.3.3(最流行的atm)sdk版本有哪些选择? 谢谢。
答案 0 :(得分:1)
不是。
需要考虑两个主要方面:
您如何使用它们取决于您的项目需求。通常情况下,您会提供各种密度的图像(因此图标等在所有设备上看起来都很好),但如果您正在构建一个应用程序,以便在不同大小的设备上工作(小型手机到10英寸平板电脑),您还应提供布局适用于各种尺寸的屏幕 - 可能是一部用于手机,一部用于7英寸平板电脑,另一部用于10英寸平板电脑。
http://developer.android.com/guide/practices/screens_support.html
答案 1 :(得分:1)
看看the android documentation about supporting multiple screens - 要点是你可以拥有多个具有不同命名约定的文件夹,这些文件夹基于目标设备 在一系列事物(屏幕密度,屏幕尺寸,肖像/风景等)上,它们可以像你想要的那样模糊或详细。 例如,如果您想要定位所有xhdpi设备,则创建一个名为“layout-xhdpi”的布局文件夹,在其中创建一个布局,所有xhdpi设备将使用该文件夹而不是其他任何设备。如果你想更具体一些,例如专门定位Galaxy Nexus,你可以创建一个名为'layout-w360dp-port-xhdpi'的文件夹。
我更喜欢做的另一种方法是使用单个布局文件,并且具有针对不同屏幕尺寸的多个“值”xml文件,并且在值文件中更改填充/高度所采用的值并指向这些值你的布局。例如在'values / dimension.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的值”。
答案 2 :(得分:0)
只需为每个密度创建不同的布局,并将其放在适当的文件夹中
从android docs看到这个: 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