有没有办法只使用4.2.2中的XML将图像置于按钮中心?

时间:2015-02-09 16:00:45

标签: android-layout android-xml android-4.2-jelly-bean

我有一个很好的右箭头和一个按钮的图像,但我绝对不希望它冲到一边。 有没有办法只使用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中,并处理宽度问题,我不这样做。

1 个答案:

答案 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主题,对于以前的版本,可以使用您的颜色和按下时突出显示颜色。

此外,这是一个自动化解决方案:图片:

Three buttons, each with the text "Edit" and a pencil icon, centered vertically.

  1. 棒棒糖装置
  2. 关于预棒棒糖装置
  3. 前棒棒糖设备按下按钮