【问题标题】:Supporting multiple Screen sizes with Button designButton 设计支持多种屏幕尺寸
【发布时间】:2013-08-13 04:30:12
【问题描述】:

我在 Photoshop 中创建了一个按钮。问题是,当我从大屏幕手机测试应用程序时,一切都很好,但是当我在较小的手机上测试时,按钮非常大。如何为每种手机尺寸制作合适的尺寸按钮?

【问题讨论】:

  • 请出示您的代码

标签: android button photoshop


【解决方案1】:

我想“我在 Photoshop 中设计了一个按钮”是指您设计了它的背景图像。

Button 的大小实际上不一定取决于背景图像的大小。您可以通过可以在 layout.xml 文件(或代码)中设置的属性来控制按钮的大小。

在这个简单的示例中,Button 将始终使用父布局宽度 (LinearLyout) 的一半。 (注意“weightSum”和“weight”属性)。

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    android:weightSum="2">

    <Button
        android:id="@+id/btn1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:text="Button"
        android:layout_weight="1" />

</LinearLayout> 

当然,还有很多方法和属性可以调整布局以适应不同的屏幕尺寸,这里只是给你一个简单的例子来说明如何做到这一点。 有关更多信息,请查看 Google-Android-Developer 页面中的本教程:

支持多种屏幕尺寸(尤其是密度无关性对您来说应该很有趣)

http://developer.android.com/guide/practices/screens_support.html

【讨论】:

  • 并不是要讨厌你,但是当你使用layout_weights时,设置android:layout_width="0dp"。并且,对于具有垂直方向的 LinearLayout,android:layout_height="0dp".
  • 未采取,否则这样做是不是很糟糕?
  • 虽然 Android Lint 列出了使用0dp 作为性能增强器,但其推理实际上是相当合乎逻辑的。如果您使用layout_weights 来控制空间分配,则提及android:layout_width="wrap_content" 是多余的。一个出色的答案人。 +1。在这里发现你的答案有点缺乏:Strange thread behavior with onClickListener.
  • 好的,谢谢您的解释,我编辑了我的答案,请您检查它是否正确。大声笑,绝对不是我最好的答案,我只是认为它不值得-1 :-)
  • Phil,将父视图的 layout_height 设置为 0dp 会适得其反。视图会消失。 layout_weight 用于在父级分配空间。如何将空间分配给父母完全是另一个问题。出于提供示例的目的,将 LinearLayout 的 android:layout_height 恢复为 wrap_content(您之前有正确的值)。孩子(即按钮)的属性是正确的。如果有更多孩子,他们的layout_widths 也将是0dp,因为孩子会_并排_添加(父母的方向目前是水平的)。
猜你喜欢
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多