android - 按钮样式

Par*_*ani 24 android styles button

普通按钮看起来像:

替代文字

现在,请让我知道,我如何制作一个简单的按钮与附加图像按钮相同(即按钮角形是圆形的,两个按钮之间也没有间隙)

替代文字

Asa*_*ssi 25

1-为按下和释放状态创建形状(具有所需颜色)

为了创建形状,我建议这个伟大的网站将为您做到:http://angrytools.com/android/button/

绘制\ botton_shape_pressed.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="@color/pressed_button_background"
        android:endColor="@color/pressed_button_background"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

绘制\ botton_shape_released.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="@color/released_button_background"
        android:endColor="@color/released_button_background"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

2-为这两个形状创建一个选择器

绘制\ botton_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/botton_shape_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/botton_shape_pressed"
          android:state_selected="true" />
    <item android:drawable="@drawable/botton_shape_released" />
</selector>
Run Code Online (Sandbox Code Playgroud)

3-使用按钮的选择器

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/test"
    android:textColor="@color/blue_text"
    android:onClick="testOnClickListener"
    android:background="@drawable/botton_selector" />
Run Code Online (Sandbox Code Playgroud)


Mac*_*rse 23

9补丁在这里工作正常,但我尽量避免它们,因为我很难做到这些:(

您可以尝试selector为每个州使用并使用形状:

形状看起来像这样:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle">

    <solid android:color="#AAFFFFFF"/>

    <corners android:bottomRightRadius="7dp"
        android:bottomLeftRadius="7dp" 
        android:topLeftRadius="7dp"
        android:topRightRadius="7dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)


kgi*_*kis 5

您需要创建一个9-patch drawable.为了在按钮之间没有间隙(边距),您需要在XML中创建适当的布局并将边距设置为0.