【问题标题】:Two views depend on screen size两个视图取决于屏幕大小
【发布时间】:2017-02-24 05:27:06
【问题描述】:

我有一个活动。这个活动有两种布局:宽屏和小屏。我必须在我的活动中初始化字段取决于使用的布局。 例如:

class MyActivity extends Activity {
   private int i; //is_layout1?  i = 10 : i = 11;

}

怎么做?我想避免if 这样做。

怎么做?

【问题讨论】:

标签: android


【解决方案1】:

有多种方法可以实现这一目标。您可以检查每个像素的屏幕尺寸和密度,并根据这些动态调整您拥有的所有元素的大小。但是这种方法依赖于很多代码 Java 代码,它不是设计布局的干净方法。

更好的方法是根据屏幕尺寸类型为不同尺寸创建单独的布局,并在运行时由编译器根据运行的屏幕尺寸决定需要使用哪个文件。

这样一来,你必须使用这样的布局文件夹名称......

layout
    activiy_main.xml
layout-large
    activiy_main.xml
layout-small
    activiy_main.xml
layout-xlarge
    activiy_main.xml

您也可以根据屏幕大小和包含dimens.xml 文件的dp 使用一个布局文件但多个文件夹作为values 文件夹。该文件将包含不同屏幕尺寸的不同元素尺寸值。

这样,你应该在 res 目录中有这样的文件夹......

layout
    activity_main.xml
values
    dimens.xml
values-hdpi
    dimens.xml
values-mdpi
    dimens.xml
values-xhdpi
    dimens.xml

在这里你可能有一个按钮的边距值 20dp 用于 hdpi 文件夹和 30dp 用于 xhdpi 文件夹。

如果需要根据屏幕大小初始化任何变量,您可以使用单独的 integers.xml 文件为不同的值文件夹并根据需要放置值。 https://developer.android.com/guide/topics/resources/more-resources.html#Integer

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 2013-12-31
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多