【问题标题】:Multiple screen support for large and small screens多屏支持大屏和小屏
【发布时间】:2016-03-25 03:02:45
【问题描述】:

好吧,我已经阅读了很多关于这个的章节,但我仍然不知道这个项目最好的做法是什么。

这是我有一个项目 [big one :)] 的情况,在这个项目中,所有内容都是针对分辨率为 480 x 800 像素的屏幕完成的。

这是新要求:)。他们要求支持分辨率为 240 x 320 像素的设备(此分辨率为小布局)。到目前为止一切都很好:),但问题是 240x320 的分辨率太小,无法仅通过缩放布局正常来适应组件。我需要对小屏幕手机进行全新的设计。

这意味着如果我现在在 layout-small/main.xml 中的 layout/main.xml 中有文本文件 R.id.textview1,我将没有 R.id.textview1 但我现在有两个组件让我们说 R.id.button1 和 R.id.textviewsmall ... 我的观点是这样的代码将不起作用,因为在 layout/main.xml 中 textview1 存在,但在 layout-small/main.xml 中不存在,并且它会抛出异常

((TextView)findViewbyId(R.id.textview1)).setText("something");

当然,这是我所解释的非常愚蠢的场景,我有一些非常复杂的事情,但我希望你明白我想要实现的目标。

问题是实现片段为时已晚,因为需要完成大量工作。所以我需要一些指导方针,我应该如何做到这一点......

任何想法或一些设计指南都会有很大帮助,谢谢...

【问题讨论】:

标签: android android-layout android-screen-support android-screen


【解决方案1】:

是的,你可以这样做。 在许多应用程序中,我们可以根据需要手动设置此类布局。

为此,您首先必须以编程方式获取屏幕高度和宽度。 现在一次,如果你得到它。 您可以在Java文件中设置条件,如果屏幕高度和宽度等等。然后执行此操作。

希望你明白我的意思。

或者

如果您想通过 XML 设置布局,则制作不同的布局 XML,如下所示:

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

然后,您可以手动设置特定布局的高度和宽度。希望它能解决您的问题。

如果它不是您的解决方案,请告诉我。 . .

享受。 :)

【讨论】:

  • 好吧,我必须同意你的观点,这是解决问题的方法之一。但我的问题是,还有其他选择吗? ,tnx
  • 我看到你试图解释什么是在多个屏幕化脓中解释的同一件事,这部分我很清楚。但请仔细阅读粗体文字,因为这是我不知道如何处理的部分
  • @Lukap:正如你所说,我已经成功完成了。请在闲聊中与我见面
【解决方案2】:

一种可能的方法是为小屏幕创建布局并指定权重属性,然后它也会在大屏幕上进行自我调整。如果您还使用不同密度的图像,那么在大多数情况下它可能对您有用。 以下是在布局中指定权重的方法。

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
 <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="small"
android:layout_weight="0.2"
android:background="#123" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:text="huge"
android:background="#456"
 />
</LinearLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多