我想做一个有点圆形的按钮和一个可绘制的开始(没有填充)。
我将此添加到按钮背景中:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#CC232323"/>
<corners android:radius="50sp"/>
</shape>
按钮是:
<Button
android:id="@+id/btn_play"
android:layout_width="match_parent"
android:layout_height="50sp"
android:layout_marginStart="25sp"
android:layout_marginEnd="25sp"
android:layout_weight="1"
android:background="@drawable/btn_bg"
android:drawableStart="@drawable/icon_layer_list"
android:text="@string/sample_text"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="@color/colorWhite" />
图层列表为:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/background_design"
android:height="50sp"
android:width="50sp"
/>
</layer-list>
这个角确实对按钮本身起作用,但是drawablestart不受它们的影响,所以我得到了一个按钮,一边是圆形边框,另一边是drawablestart的方形边框。
2条答案
按热度按时间mo49yndu1#
视图(或您的案例中的按钮)始终为矩形。应用圆角背景时,它只是背景图像圆角,而不是视图本身。如果需要在drawablestart中设置圆角,则需要在drawablestart中设置圆角。
yvfmudvl2#
我找到了一个简单易行的解决办法,想法是用一个
CardView
把它设定为cardCornersRadius
到想要的半径。像这样:
毫无疑问,这是我找到的最简单的方法,以获得与边界,边界的观点行动
CardView
不会让按钮或其内的任何东西在其边界/角落之外绘制。有关的详细信息
CardView
(它是属性、依赖项等…),转到此链接。