Android布局 - 按钮大小

时间:2012-12-02 07:34:14

标签: android android-layout relativelayout

这是我的按钮代码。事实是,它在所有设备上都是相同的尺寸。它在小型上很大,在大型上很小。我如何相对改变它的大小?这是我的代码。

<Button
        android:id="@+id/button1"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_margin="3dp"
        android:background="@drawable/blue_gradient"
        android:layout_alignRight="@+id/relativeLayout1"
        android:layout_alignTop="@+id/relativeLayout1"/>

我希望大小一致,具体取决于设备的分辨率。

修改的 我希望按钮是方形的。

3 个答案:

答案 0 :(得分:1)

您以dp或与密度无关的像素指定宽度和高度。此度量单位旨在在所有设备上生成相同的物理大小,与像素密度无关,因为像素密度因设备而异。您还可以对layout_widthlayout_height使用以下任一值:

  • wrap_content使视图足够大以容纳其内容。
  • match_parent使用其父视图的相应尺寸(宽度或高度)。

对于其中任何一个,您都可以指定填充和边距,这是典型的盒子模型。

Android目前不支持百分比样式测量,例如使宽度为可用宽度的60%。您最接近的是使用LinearLayout并为其子视图指定layout_weight值。

如果想要更好地控制视图的大小,可以对其进行子类化并覆盖onMeasure方法,在这里您可以通过调用{{来计算视图的大小并设置其宽度和高度。 1}}。以下是有人这样做的示例:https://stackoverflow.com/a/3147157/1207921

答案 1 :(得分:0)

最好的方法是使用

android:layout_width="wrap_content" android:layout_height="wrap_content"

它可以很好地管理所有设备的大小。

对于方形按钮,您需要在代码中设置宽度/高度。 this会帮助你。

答案 2 :(得分:0)

您可能希望根据屏幕分辨率(Android, (newbie) different res imagebuttons)尝试使用尺寸不同的图像按钮。

如果您将LinearLayout与android:weightSum =“2.0”一起使用,并且您使用android:layout_weight =“1”设置所有图像按钮,则根据LinearLayout方向,您将使其宽度/高度恰好为LinearLayout的50%。