如何在 Android 中以编程方式为 GradientDrawable 设置 TopLeftRadius 和 BottomLeftRadius
How to set TopLeftRadius and BottomLeftRadius for a GradientDrawable programmatically in Android
我有一个 ShapeDrawable 。我想以编程方式设置 CornerRadius (TopLeftRadius & BottomLeftRadius)。
下面是我的xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="5dp"
android:bottom="5dp">
<shape android:shape="rectangle">
<corners android:topLeftRadius="20dp"
android:bottomLeftRadius="20dp"/>
<solid android:color="#A2D368"/>
</shape>
</item>
</layer-list>
<shape android:shape="rectangle">
<corners
android:topLeftRadius="@dimen/button_radius"
android:topRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:bottomRightRadius="@dimen/button_radius"/>
<stroke
android:width="@dimen/button_stroke_width"
android:color="@color/colorBlack"/>
<gradient
android:angle="-90"
android:startColor="@color/colorLightPurple"
android:endColor="@color/colorDeepPurple" />
</shape>
这样做;
float mRadius=3f;
GradientDrawable drawable=new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setCornerRadii(new float[]{mRadius, mRadius, 0, 0, 0, 0, mRadius, mRadius});
了解更多详情click here
使用GradientDrawable的setCornerRadii (float[] radii)
方法。
一般来说,此方法采用大小为 8 的浮点数组。
对于 4 个角中的每一个,都需要 2 个半径值 x 半径和 y 半径。
角点在浮点数组中按左上角、右上角、右下角、左下角顺序排列。
由于您要求左上角和左下角半径,因此需要将半径值设置为浮点数组的前 2 个和后 2 个索引。
示例 ->
setCornerRadii(new float[]{50, 50, 0, 0, 0, 0, 50, 50})
我有一个 ShapeDrawable 。我想以编程方式设置 CornerRadius (TopLeftRadius & BottomLeftRadius)。
下面是我的xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="5dp"
android:bottom="5dp">
<shape android:shape="rectangle">
<corners android:topLeftRadius="20dp"
android:bottomLeftRadius="20dp"/>
<solid android:color="#A2D368"/>
</shape>
</item>
</layer-list>
<shape android:shape="rectangle">
<corners
android:topLeftRadius="@dimen/button_radius"
android:topRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:bottomRightRadius="@dimen/button_radius"/>
<stroke
android:width="@dimen/button_stroke_width"
android:color="@color/colorBlack"/>
<gradient
android:angle="-90"
android:startColor="@color/colorLightPurple"
android:endColor="@color/colorDeepPurple" />
</shape>
这样做;
float mRadius=3f;
GradientDrawable drawable=new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setCornerRadii(new float[]{mRadius, mRadius, 0, 0, 0, 0, mRadius, mRadius});
了解更多详情click here
使用GradientDrawable的setCornerRadii (float[] radii)
方法。
一般来说,此方法采用大小为 8 的浮点数组。
对于 4 个角中的每一个,都需要 2 个半径值 x 半径和 y 半径。
角点在浮点数组中按左上角、右上角、右下角、左下角顺序排列。
由于您要求左上角和左下角半径,因此需要将半径值设置为浮点数组的前 2 个和后 2 个索引。
示例 ->
setCornerRadii(new float[]{50, 50, 0, 0, 0, 0, 50, 50})