正方形按钮(带图像和文字)

时间:2012-08-16 22:14:48

标签: android android-layout android-button

我有4个图像+文本按钮排列在4x4网格中。我正在使用android:drawableTop属性。按钮背景是可绘制的状态列表。它们是两个嵌套的LinearLayouts的子项,它们将它们排列在2x2网格中。

我的问题是,出于审美原因,我希望按钮完全正方形。我该怎么做呢?在一些设备上,它们被拉高,而在另一些设备上它们被压平。有没有办法指示Android使高度和宽度始终相等,无论屏幕尺寸或方向如何?

如果不是要求太多,如果没有自定义Java可以通过XML完成,那将会很棒。

提前致谢...

按钮:

<Button
    android:id="@+id/btn_help_support"
    style="@style/btn_home"
    android:drawableTop="@drawable/home_btn_help_support"
    android:text="@string/home_btn_help_support" />

按钮样式:

<style name="btn_home">
    <item name="android:gravity">center</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:layout_marginLeft">10dp</item>
    <item name="android:layout_marginRight">10dp</item>
    <item name="android:layout_marginTop">10dp</item>
    <item name="android:layout_weight">1</item>
    <item name="android:paddingTop">10dp</item>
    <item name="android:paddingBottom">10dp</item>
    <item name="android:paddingLeft">10dp</item>
    <item name="android:paddingRight">10dp</item>
    <item name="android:background">@drawable/btn_std</item>
    <item name="android:drawablePadding">10dp</item>
    <item name="android:textColor">@color/btn_std_text</item>
    <item name="android:textSize">@dimen/home_btn_font_size</item>
</style>

1 个答案:

答案 0 :(得分:1)

我认为这是因为您的layout_widthlayout_height分别设置为fill_parentwrap_content

现在,考虑不同的屏幕尺寸可能会很棘手,因此对整数值进行硬编码可能不起作用,但值得一试。否则,您必须从样式中省略这些并在Java中定义它们。