带有图标和文本按钮的填充图形

时间:2018-05-24 19:16:16

标签: android xml

我试图在自定义按钮上添加图标和文字。我希望两者都集中在一起。为此我使用phillipcalvin-iconbutton。这很好用但是drawable设置没有任何填充,所以它看起来像这样:

enter image description here

我尝试使用相同的资源创建另一个drawable,该资源具有这样的填充:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:bottom="3dp"
    android:left="3dp"
    android:right="3dp"
    android:top="1dp">

    <selector xmlns:android="http://schemas.android.com/apk/res/android">


        <item android:drawable="@drawable/btn_done"
            >

            <padding
                android:left="50dp"
                android:top="50dp"
                android:right="50dp"
                android:bottom="50dp"
                />

        </item>
    </selector>
</item>

这没有什么区别。

我不想使用某种布局我设置了一个TextView和一个ImageView,因为我松开了按钮动画。

任何想法我怎么能解决这个问题?

只是想要看到我的自定义按钮:

<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="@color/darkRipple">

<item android:id="@android:id/mask"
    android:bottom="4dp" android:left="4dp" android:right="4dp"     android:top="4dp"
    tools:targetApi="lollipop">
    <shape android:shape="rectangle">
        <solid android:color="@color/darkRipple" />
        <corners android:radius="7dp" />
    </shape>
</item>

<item android:id="@android:id/background"
    android:bottom="4dp" android:left="4dp" android:right="4dp"          android:top="4dp">
    <shape android:shape="rectangle">
        <corners android:radius="7dp" />
        <solid android:color="@color/dark" />
        <size android:width="110dp" android:height="40dp" />
    </shape>
</item>
</ripple>

以下是我如何使用它:

<com.phillipcalvin.iconbutton.IconButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:background="@drawable/btn_dark"
    android:drawableLeft="@drawable/btn_ic_done"
    app:iconPadding="10dp"
    android:text="DONE"
    android:textColor="@color/White"/>

2 个答案:

答案 0 :(得分:1)

我认为解决这个问题的一种方法是将用作drawableLeft的图像(android:drawableLeft =&#34; @ drawable / btn_ic_done&#34;在这种情况下)导入android studio作为新的Image Asset 。这允许您在导入图像时为图像设置填充(或者您可以使用某些外部图像编辑器将填充设置为图像)。

实现这一目标的步骤:

  • 右键单击res文件夹

  • res - &gt;新的 - &gt;图片资产

  • [根据您的需要自定义图像] [1]

       [1]: https://i.stack.imgur.com/6Weu6.png
    

答案 1 :(得分:0)

来自官方文件:

    <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/your.project.package"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
<!-- ... -->
<com.phillipcalvin.iconbutton.IconButton
android:id="@+id/search"
android:drawableLeft="@drawable/action_search"
android:text="@string/search"
app:iconPadding="10dp" />