工作中需要依据不同的银行卡显示不同背景,由于银行很多,不可能用图片,想到了用Shape,但数量多,也不可能写死在shape的XML文件中,
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#971417" ></solid> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/> <!-- <stroke android:width="1dp" android:color="#971417" />--> </shape>
最后决定用代码方式
public static Drawable getBgDrawableByBankNo(Context ctx, String bankNo){ // int strokeWidth = 5; // 0dp 边框宽度 //int roundRadius=TypedValue.applyDimension(); // 10dp 圆角半径 // int strokeColor = Color.parseColor("#2E3135");//边框颜色 int fillColor = Color.parseColor("#971417");//内部填充颜色
int topLeftRadius= DisplayUtil.dip2px(ctx,10); int topRightRadius=topLeftRadius; int bottomRightRadius=0; int bottomLeftRadius=0; GradientDrawable gd = new GradientDrawable();//创建drawable gd.setGradientType(GradientDrawable.RECTANGLE); gd.setColor(fillColor); // gd.setCornerRadius(roundRadius); //1、2两个参数表示左上角,3、4表示右上角,5、6表示右下角,7、8表示左下角 gd.setCornerRadii(new float[] { topLeftRadius, topLeftRadius, topRightRadius, topRightRadius, bottomRightRadius, bottomRightRadius, bottomLeftRadius, bottomLeftRadius }); // gd.setStroke(strokeWidth, strokeColor); return gd; }
使用
iv.setBackgroundDrawable(xxx);
相关推荐
本教程将深入探讨如何在Android应用运行时动态地改变由Shape定义的颜色值。 首先,我们需要了解如何在XML中创建一个基本的Shape。一个简单的Shape定义可能如下所示: ```xml <shape xmlns:android=...
- `<solid>`:定义形状的填充颜色,可以使用颜色值或颜色资源。 - `<stroke>`:定义形状的边框,包括宽度、颜色、dash样式等。 - `<corners>`:用于圆角处理,可以设置四个角的半径。 - `<padding>`:设置内边距...
* `<solid>`:用于指定形状的填充颜色,可以使用`android:color`属性指定填充颜色。 * `<stroke>`:用于指定形状的边框,可以使用`android:width`属性指定边框的宽度,使用`android:color`属性指定边框的颜色,还...
Shape Drawable允许开发者定义矩形、椭圆、线和路径等基本形状,并可以设置填充色、描边宽度和颜色等属性。 1. **圆角图片**:在XML drawable中,你可以通过`<corners>`标签设置ImageView的圆角半径,实现圆角效果...
要动态改变Vector Drawable的颜色,我们通常会使用`android.graphics.drawable.Drawable`的子类,如`android.graphics.drawable.VectorDrawable`。以下是一些实现此功能的方法: 1. **使用ColorFilter**: 你可以为...
首先,XML Shape的基本结构包括`<shape>`标签,它可以包含`<solid>`、`<stroke>`、`<corners>`、`<padding>`等子标签,用于定义填充颜色、边框、圆角和内边距。例如: ```xml <shape xmlns:android=...
Android 实现动态改变 shape.xml 中图形的颜色 Android 中,使用 shape.xml 文件可以轻松地创建图形,但是在实际开发中,我们常常需要根据不同的场景来改变图形的颜色。那么,如何动态改变 shape.xml 中图形的颜色...
在Shape中,可以通过`<solid>`元素设置填充颜色,如`android:color="#FF0000"`表示红色填充。同时,也可以使用`<gradient>`元素来创建线性、径向、角度或对角线的渐变效果。 3. **边框样式** 使用`<stroke>`元素...
在上面的代码中,我们设置了填充颜色为 `#ff9d77`。 Gradient:渐变。android:startColor 和 android:endColor 分别为起始和结束颜色,android:angle 是渐变角度,必须为 45 的整数倍。另外,渐变默认的模式为 `...
1. **颜色填充(solid)**:通过`<solid>`标签,我们可以设置形状的填充颜色,如`android:color="#FF0000"`表示红色填充。 2. **边框(stroke)**:`<stroke>`标签用于定义形状的边框。可以设置边框宽度(`android:...
`shape`元素可以设置填充颜色或渐变: - `solid`用于填充单色,如上面的例子所示。 - `gradient`用于设置渐变颜色,可以是线性渐变、径向渐变或扫描线渐变。例如,线性渐变从红色渐变为蓝色: ```xml android:...
1. `android:color`:设置形状的颜色,通常用于填充形状内部。 2. `android:gradient`:定义渐变色。可以设置线性渐变(`android:type="linear"`)、径向渐变(`android:type="radial"`)、扫描渐变(`android:type=...
在`Shape`的XML文件中,可以通过`<solid>`标签并结合`android:color`属性来指定填充颜色。例如: ```xml <solid android:color="#ff9d77"/> ``` 这段代码定义了一个实心的形状,其填充颜色为`#ff9d77`。 #### ...
- `android:background`:设置背景颜色,如`android:background="#FF0000"`表示红色。 2. **椭圆(oval)**: - `android:shape="oval"`:创建一个椭圆。椭圆的大小由其父视图的尺寸决定。 3. **线(line)**: ...
这个元素用来设置形状的填充颜色。例如: ```xml <solid android:color="@color/colorPrimary" /> ``` 其中`@color/colorPrimary`是一个颜色资源引用,可以替换为你需要的任何颜色。 2. ****: 定义形状的...
通过`shape`,开发者可以实现丰富多彩的界面效果,包括设置填充颜色、边框宽度和颜色、渐变效果等。在Android应用的界面布局中,`shape`通常作为`<item>`标签内的一个元素存在于`drawable`资源文件中。 一、`shape`...
-- 填充颜色 --> <stroke android:width="2dp" android:color="#0000FF"/> <!-- 边框宽度和颜色 --> <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp"/> <!-- 内边距 -->...
-- 填充颜色 --> <stroke android:width="dp_value" android:color="#color_value"/> <!-- 边框宽度和颜色 --> <corners android:radius="dp_value"/> <!-- 圆角半径 --> <padding android:left="dp_value" ...
首先,ShapeDrawable是Android SDK提供的一种可绘制对象,它允许开发者自定义形状并对其进行填充和描边。在实现平行四边形效果时,我们通常不会直接使用ShapeDrawable,因为它默认只支持矩形、圆形等基本形状。不过...