我有一个很好的右箭头和一个按钮的图像,但我绝对不希望它冲到一边。 有没有办法只使用XML将它放在中心?
以下是相关代码:
<style name="widget.numberPad.actionButton.done.small" parent="widget.numberPad.actionButton.done">
<item name="android:layout_width">90dp</item>
<item name="android:drawableStart">@drawable/ic_arrow_forward_white_48px</item>
<item name="android:gravity">center_horizontal|center_vertical</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_centerHorizontal">true</item>
</style>
该按钮应该是90dp × 90dp
,但我不知道48px × 48px
图片如何转换为dp
。
我已阅读How to center icon and text in a android button with width set to “fill parent”,但解决方案是在java中,并处理宽度问题,我不这样做。
答案 0 :(得分:1)
我不确定我理解你的问题,但是要将按钮上的图标居中,这是我的解决方案。
保持Button主题的其他可能性。
<Button
android:id="@+id/pf_bt_edit"
android:layout_height="@dimen/standard_height"
android:layout_width="match_parent"
/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignBottom="@id/pf_bt_edit"
android:layout_alignLeft="@id/pf_bt_edit"
android:layout_alignRight="@id/pf_bt_edit"
android:layout_alignTop="@id/pf_bt_edit"
android:layout_margin="@dimen/margin_10"
android:clickable="false"
android:elevation="20dp"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:clickable="false"
android:src="@drawable/ic_edit_white_48dp"/>
<TextView
android:id="@+id/pf_tv_edit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/margin_5"
android:clickable="false"
android:gravity="center"
android:text="@string/pf_bt_edit"/>
</LinearLayout>
使用此解决方案,如果您在活动主题中添加<item name="colorButtonNormal">@color/your_color</item>
和<item name="colorControlHighlight">@color/your_highlight_color</item>
,您可以在Lollipop上使用阴影和波纹获取Material主题,对于以前的版本,可以使用您的颜色和按下时突出显示颜色。
此外,这是一个自动化解决方案:图片: