我正在Android中创建一个应该支持多个屏幕的应用程序,并且我已经实现了支持多屏幕的技术,如下所示: - 为 small,normal,large和xlarge 创建了layouts文件夹 - 为 drawable-hdpi,drawable-ldpi,drawable-mdpi和drawable-xhdpi 提供图像 - 在应用清单中添加了以下代码:
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
并调整了布局编辑器输入,如下图所示
问题是这些布局在真实设备上运行不正常 元素大于或小于其边距有时大于或小于布局编辑器预览
布局示例
<Button
android:id="@+id/btn_refresh"
android:layout_width="35dp"
android:layout_height="50dp"
android:layout_marginLeft="60dp"
android:background="@color/transparent"
android:onClick="refreshBtnAction" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="280dp"
android:layout_marginTop="85dp"
android:layout_marginRight="19dp"
android:layout_marginLeft="15dp"
android:divider="#E9CE9A"
android:fadingEdge="none"
android:dividerHeight="1dp" />
</RelativeLayout>
如果您能解释我应该做些什么以确保布局在真实设备上正常工作,请将不胜感激 提前致谢
答案 0 :(得分:0)
我发现最好使用sp而不是dp,并使用预定义的宽度&amp;高峰,只要你能。我指的是像android这样的东西:layoutWidth =&#34; match_parent&#34;并使用LayoutWeigt。以下示例使得2个按钮始终为80%和20%,无论屏幕分辨率如何(请参阅属性weightSum和layout_weight):
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="100"
>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/bResults"
android:text="Try Command"
android:layout_weight="20" />
<ToggleButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tbPassword"
android:layout_weight="80"
android:checked="true"
/>
</LinearLayout>
这样您就不需要任何&#34;布局文件夹&#34;,只需要用于不同图像分辨率的文件夹。我不确定你使用什么编辑器但是使用Android Studio或Eclipse这些文件夹通常会自动构建。写&#34; sp&#34;你有...&#34; dp&#34;,这也有帮助。在使用给定的建议时,我从未遇到过这个问题。我的应用程序在3.7英寸上看起来与Nexus 10相同。