我开发了一个 Android 应用程序并在 Market 上发布了它。现在我想为 10 英寸平板电脑制作同样的应用程序。问题是当我为 10 英寸平板电脑运行构建时,它运行良好,但会引发一些涉及显示文本和布局高度的 UI 问题。文字标题在手机版本中看起来不错,但在平板电脑版本中非常小。
如何以编程方式确定 APK 是在手机、10 英寸平板电脑还是 7 英寸平板电脑上运行?以及如何根据屏幕尺寸维护文本大小和视图大小?我不想为每个分辨率(如(大,xlarge))制作单独的 XML 文件。
我开发了一个 Android 应用程序并在 Market 上发布了它。现在我想为 10 英寸平板电脑制作同样的应用程序。问题是当我为 10 英寸平板电脑运行构建时,它运行良好,但会引发一些涉及显示文本和布局高度的 UI 问题。文字标题在手机版本中看起来不错,但在平板电脑版本中非常小。
如何以编程方式确定 APK 是在手机、10 英寸平板电脑还是 7 英寸平板电脑上运行?以及如何根据屏幕尺寸维护文本大小和视图大小?我不想为每个分辨率(如(大,xlarge))制作单独的 XML 文件。
正如您所提到的,您不想创建新的 xml 文件,所以我认为您应该以编程方式检查设备,即您可以使用我认为 WindowManager 来检查设备宽度。然后根据它设置您的字体和布局参数。但我建议您使用 xml 方法,它使您的工作变得轻松。
希望这对您有所帮助,如果需要更多帮助,请随时询问..
如果只是更改一些文本大小和尺寸,则执行此操作的标准方法是使用参考尺寸或样式资源的单一布局。例如,您的布局可以有一个TextView
其文本大小声明为:
android:textSize="@dimen/descriptive_text_size_label"
另一个视图的高度可以声明为:
android:layout_height="@dimen/descriptive_layout_height_label"
另一个视图可以有几个属性组合在一起的样式:
style="@style/descriptive_style_label"
然后,在res/values-MODIFIER
目录中,您有,例如styles.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="descriptive_style_label">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">6dp</item>
</style>
<dimen name="descriptive_layout_height_label">120dp</dimen>
<dimen name="descriptive_text_size_label">16dp</dimen>
</resources>
所以你会有平板电脑的值res/values-xlarge
和默认值res/values
。
如果您需要对布局进行更大幅度的更改,您可以使用单独的布局,但使用<include>
.