如何创建按钮的自定义形状,但保持其可点击和可聚焦

时间:2017-10-22 17:35:14

标签: java android xml kotlin

我想制作一个自定义形状的按钮,但是当我尝试改变形状但是它不可点击/可聚焦时,我该怎么做?

2 个答案:

答案 0 :(得分:1)

我希望这是你正在寻找的东西,但我已经做了几次,我更喜欢圆形按钮,或者如果它是一个小部件,我想要一个复选框。以下是我刚刚更改android:background:

的几个例子
 <Button
            android:id="@+id/widget_yes_no_checkbox_off"
            android:layout_width="@dimen/checkbox_size"
            android:layout_height="@dimen/checkbox_size"
            android:layout_marginEnd="@dimen/right_margin"
            android:layout_gravity="center"
            android:background="@android:drawable/checkbox_off_background"
           />

这给了我一个看起来像一个复选框的按钮(在小部件中制作复选框所必需的)。

或者,这是一个可绘制的xml来帮助我绕一个按钮

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="@color/primaryDarkColor"/>
    <corners android:radius="20dp"/>
</shape>

与它相对应的风格主题:

 <style name="myAppStyle.ButtonStyle">
        <item name="android:background">@drawable/rounded_button</item>
    </style>

因此,总而言之,我认为最简单的方法是仍然执行按钮布局,但使用background属性来更改按钮的外观。

答案 1 :(得分:0)

你可以通过两种方式来实现,

  1. 设置任何形状可绘制的布局/按钮,并在XML中添加adjustsFontSizeToFitWidth

  2. 在按钮中设置Style属性。 android:foreground="?attr/selectableItemBackground"在其XML和定义中 / style文件夹中的style="@style/buttonTheme"