我有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>
答案 0 :(得分:1)
我认为这是因为您的layout_width
和layout_height
分别设置为fill_parent
和wrap_content
。
现在,考虑不同的屏幕尺寸可能会很棘手,因此对整数值进行硬编码可能不起作用,但值得一试。否则,您必须从样式中省略这些并在Java中定义它们。