0

这是我的按钮代码。问题是,它在所有设备上都是相同的大小。对小人大,对大人小。我如何相对改变它的大小?这是我的代码。

<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"/>

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

编辑 我希望按钮是方形的。

4

3 回答 3

1

您正在以 dp 或与密度无关的像素为单位指定宽度和高度。此度量单位旨在在所有设备上产生相同的物理尺寸,而不管像素密度如何,因为像素密度因设备而异。layout_width您还可以对和使用以下任一值layout_height

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

此外,您还可以使用其中任何一个指定填充和边距,这是典型的盒子模型。

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

如果您想更好地控制视图的大小,可以将其子类化并覆盖该onMeasure方法,您可以在该方法中计算视图的大小并通过调用setMeasuredDimension(w, h). 这是一个这样做的人的例子:https ://stackoverflow.com/a/3147157/1207921

于 2012-12-02T07:48:45.110 回答
0

最好的方法是使用

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

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

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

于 2012-12-02T07:37:04.087 回答
0

您可能想尝试根据屏幕分辨率(Android,(新手)不同的 res imagebuttons)使用具有不同大小图像的图像按钮。

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

于 2013-02-01T14:53:00.260 回答