我怎样才能开发出这种Button

时间:2016-06-13 10:47:19

标签: java android

此按钮具有外部白色rong和内部灰色背景 内部背景包含图像(刻度线)和文本(应用)。

http://imgur.com/a/NfXKR

我可以制作这样的形状(如下)。

http://imgur.com/k0cSyM3

我在drawable中使用了一个形状(button.xml):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <size android:height="85dp"
            android:width="90dp"/>
        <solid android:color="@color/grey"/>
        <stroke android:color="@color/white" android:width="4dp"></stroke>
    </shape>
</item>
<item
    android:drawable="@drawable/checkmark_filled"
    android:bottom="20dp"
    android:left="20dp"
    android:right="20dp"
    android:top="20dp"/>
</layer-list>

并使用ImageView来使用形状

<ImageView
    android:id="@+id/button_apply"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/button"/>

但我无法制作文字。
我错过了什么或有什么办法吗?

1 个答案:

答案 0 :(得分:1)

我会做的是这样的事情:

1 - 将LayerList分成2个不同的drawable

circle.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    >
        <size android:height="85dp" android:width="90dp" />
        <solid android:color="@color/grey" />
        <stroke android:color="@color/white" android:width="4dp" />
</shape>

我假设你已经有了这个位图:drawable/checkmark_filled

2 - 使用TextView而不是ImageView:

<TextView
    android:id="@+id/button_apply"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:backgound="@drawable/button"
    android:drawableTop="drawable/checkmark_filled"
    android:text="APPLY"
    android:clickable="true"
/>

根据需要调整重力和衬垫 还可以根据需要设置其他一些属性。

请注意,您可以(并且应该)使用字符串资源,而不是硬编码文本。

简要说明:

  • 我使用椭圆形作为TextView支架。
  • 我使用复选标记位图作为复合drawable。
  • 我正在使用TextView的文字来写一些东西。
  • 我将TextView设置为clickable,因此您可以像使用按钮一样使用它。