我想要一个button
,半径为backgroundTint
的{{1}}:D
这是我定义的样式:
corner
还有<style xmlns:tools="http://schemas.android.com/tools" name="myButton" parent="Widget.AppCompat.Button.Colored">
<item name="android:background">@drawable/button_light</item>
<item name="android:backgroundTint" tools:targetApi="lollipop">#e0e0e0</item>
</style>
代码:
@drawable/button_light
然后将<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="15dp" />
<solid android:color="#FAFAFA" />
</shape>
应用于我想要的@style/myButton
,结果是我有圆角但没有button
的效果(ripple
确实不起作用)。
我该怎么解决?
答案 0 :(得分:1)
您可以使用layer-list实现此目的。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle">
<corners android:radius="15dp" />
<solid android:color="#FAFAFA" />
</shape>
</item>
<!-- Put any image or anything here as the drawable -->
<item android:drawable="?attr/selectableItemBackground"/>
</layer-list>
答案 1 :(得分:0)
创建一个包含以下内容的drawable / butt.xml文件:
?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="rectangle">
<corners android:radius="1000dp" />
<solid android:color="#41ba7a" />
<stroke
android:width="2dip"
android:color="#03ae3c" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="1000dp" />
<solid android:color="#3AA76D" />
<stroke
android:width="2dip"
android:color="#03ae3c" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
</shape>
</item>
</selector>
2:在代码中任何布局文件的按钮标签中使用它
<Button
android:layout_width="220dp"
android:layout_height="220dp"
android:background="@drawable/butt"
android:text="@string/btn_scan_qr"
android:id="@+id/btn_scan_qr"
android:textSize="15dp"
/>
答案 2 :(得分:0)
您可以在此库中使用:
为按钮添加波纹效果,并为按钮添加形状
像这样:
<com.balysv.materialripple.MaterialRippleLayout
style="@style/RippleStyleBlack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
>
<Button
android:id="@+id/call_btn"
android:layout_width="60dp"
android:layout_height="25dp"
style="@style/Base.Widget.AppCompat.Button.Borderless"
android:text="call"
android:textSize="12sp"
android:background="@drawable/call_btn_bg"
android:textColor="@color/deep_orange_600"
/>
</com.balysv.materialripple.MaterialRippleLayout>