Dưới đây là làm thế nào để làm điều đó một cách chính xác.
Những gì bạn cần làm là
1 - Tạo hình dạng drawable với đột quỵ
2 - Tạo gợn drawable
3 - Tạo selector drawable dưới v21
4 - Tạo phong cách mới cho nút với biên giới
5 - Áp dụng phong cách trên nút
1 - Tạo hình dạng với đột quỵ btn_outline.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/colorAccent">
</stroke>
<solid android:color="@color/colorTransparent"/>
<corners
android:radius="5dp">
</corners>
</shape>
2 - Tạo gợn drawable drawable-v21/bg_btn_outline.xml
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/colorOverlay">
<item>
<shape>
<stroke
android:width="2dp"
android:color="@color/colorAccent"/>
<corners android:radius="5dp"/>
</shape>
</item>
<item android:id="@android:id/mask">
<shape>
<stroke
android:width="2dp"
android:color="@color/colorAccent"/>
<solid android:color="@android:color/white"/>
<corners android:radius="5dp"/>
</shape>
</item>
</ripple>
android:id="@android:id/mask"
bắt buộc phải có thông tin phản hồi cảm ứng gợn vào nút. Lớp được đánh dấu là mặt nạ không hiển thị trên màn hình, nó chỉ dành cho phản hồi cảm ứng.
3 - Tạo selector drawable dưới v21 drawable/bg_btn_outline.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_outline" android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/colorOverlay"/>
</shape>
</item>
<item android:drawable="@drawable/btn_outline" android:state_focused="true">
<shape android:shape="rectangle">
<solid android:color="@color/colorOverlay"/>
</shape>
</item>
<item android:drawable="@drawable/btn_outline"/>
</selector>
4 - Tạo một phong cách mới cho nút với biên giới Tất cả các nguồn lực mà đó là cần thiết để tạo ra các phong cách được đưa ra ở trên , đó là cách phong cách của bạn trông giống như
<style name="ButtonBorder" parent="Widget.AppCompat.Button.Colored"/>
<style name="ButtonBorder.Accent">
<item name="android:background">@drawable/bg_btn_outline</item>
<item name="android:textColor">@color/colorAccent</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">16sp</item>
<item name="android:singleLine">true</item>
</style>
4 - App ly style on button
<Button
style="@style/ButtonBorder.Accent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Khá nhiều. Dưới đây là ví dụ về cách các nút trông như thế nào.
Hoàn hảo! Ngoại trừ bạn có một số lỗi chính tả: drawable/bg_btn_outline.xml @ drawable/bg_accent_outline -> @ drawable/btn_outline – jclova
Đã sửa lỗi! Cảm ơn đã chỉ ra điều đó –