我正在开发一个客户端希望在所有支持设备上具有相同外观的应用程序。此应用程序将支持以下设备的Android 4.0.3或更高版本。
如果我创建这样的布局
并定义所有ui维度和
中的drawable我的问题是
谢谢。
答案 0 :(得分:2)
这会涵盖我提到的所有设备吗?
从给出的列表中,您似乎 已涵盖所有案例。请注意,根据设备的尺寸/分辨率,设备是手机还是平板电脑没有硬线。以下是Google的general guideline:
为帮助您针对不同类型的设备定位某些设计,以下是典型屏幕宽度的一些数字:
- 320dp:典型的手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。
- 480dp:像Streak(480x800 mdpi)这样的tweener平板电脑。
- 600dp:7“片剂(600x1024 mdpi)。
- 720dp:10英寸平板电脑(720x1280 mdpi,800x1280 mdpi等)。
值等于值-sw320dp,这是正确的吗?
设备将根据其限定符使用最适合的任何资源。如果设备的最小宽度介于320dp-359dp之间,则它将使用/values-sw320dp
和/drawables-sw320dp
中的两种资源。如果它在360dp-479dp之间,它将使用下一个。同时,一般/默认资源应放在/values
和/drawable
中(不含限定符)。
像三星Galaxy Tab 2 7“这样的设备有一个屏幕控制所以它的dp 实际上低于600dp。然后,在我的情况下,它将加载值 和sw480dp的drawables,它是否正确?
再次,来自Android developer's guide:
设备的最小宽度考虑了屏幕装饰和系统UI。例如,如果设备在屏幕上有一些持久性UI元素,这些元素占最小宽度轴的空间,系统声明最小宽度小于实际屏幕尺寸,因为这些是屏幕像素不适用于您的用户界面。
根据该定义,诸如软菜单的系统UI将不包括在计算中。你对这个概念是正确的。
毕竟,您应该使用真实设备/模拟器测试所有布局并查看最终结果。通过使用模拟器,您可以轻松指定配置以进行测试。
答案 1 :(得分:-1)
例如,
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/top_edit"
android:weightSum="2" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="left" >
<Button
android:id="@+id/star"
android:layout_width="@dimen/star_width"
android:layout_height="match_parent"
android:background="@drawable/star_xml" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="right" >
<Button
android:id="@+id/more"
android:layout_width="@dimen/more_width"
android:layout_height="match_parent"
android:background="@drawable/more_xml" />
</RelativeLayout>
</LinearLayout>