这是我的按钮代码。事实是,它在所有设备上都是相同的尺寸。它在小型上很大,在大型上很小。我如何相对改变它的大小?这是我的代码。
<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"/>
我希望大小一致,具体取决于设备的分辨率。
修改的 我希望按钮是方形的。
答案 0 :(得分:1)
您以dp或与密度无关的像素指定宽度和高度。此度量单位旨在在所有设备上生成相同的物理大小,与像素密度无关,因为像素密度因设备而异。您还可以对layout_width
和layout_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%。