`
喧嚣求静
  • 浏览: 573477 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android动态改变shape填充颜色

 
阅读更多

工作中需要依据不同的银行卡显示不同背景,由于银行很多,不可能用图片,想到了用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的颜色值

    本教程将深入探讨如何在Android应用运行时动态地改变由Shape定义的颜色值。 首先,我们需要了解如何在XML中创建一个基本的Shape。一个简单的Shape定义可能如下所示: ```xml &lt;shape xmlns:android=...

    Android中使用Shape自定义形状

    - `&lt;solid&gt;`:定义形状的填充颜色,可以使用颜色值或颜色资源。 - `&lt;stroke&gt;`:定义形状的边框,包括宽度、颜色、dash样式等。 - `&lt;corners&gt;`:用于圆角处理,可以设置四个角的半径。 - `&lt;padding&gt;`:设置内边距...

    android shape的使用及渐变色、分割线、边框、半透明阴影

    * `&lt;solid&gt;`:用于指定形状的填充颜色,可以使用`android:color`属性指定填充颜色。 * `&lt;stroke&gt;`:用于指定形状的边框,可以使用`android:width`属性指定边框的宽度,使用`android:color`属性指定边框的颜色,还...

    Android-android-shape-imageview-图片圆角三角五角圆形多角

    Shape Drawable允许开发者定义矩形、椭圆、线和路径等基本形状,并可以设置填充色、描边宽度和颜色等属性。 1. **圆角图片**:在XML drawable中,你可以通过`&lt;corners&gt;`标签设置ImageView的圆角半径,实现圆角效果...

    Android-轻松从你的代码改变vectordrawables的颜色

    要动态改变Vector Drawable的颜色,我们通常会使用`android.graphics.drawable.Drawable`的子类,如`android.graphics.drawable.VectorDrawable`。以下是一些实现此功能的方法: 1. **使用ColorFilter**: 你可以为...

    android XML shape优化界面

    首先,XML Shape的基本结构包括`&lt;shape&gt;`标签,它可以包含`&lt;solid&gt;`、`&lt;stroke&gt;`、`&lt;corners&gt;`、`&lt;padding&gt;`等子标签,用于定义填充颜色、边框、圆角和内边距。例如: ```xml &lt;shape xmlns:android=...

    Android实现动态改变shape.xml中图形的颜色

    Android 实现动态改变 shape.xml 中图形的颜色 Android 中,使用 shape.xml 文件可以轻松地创建图形,但是在实际开发中,我们常常需要根据不同的场景来改变图形的颜色。那么,如何动态改变 shape.xml 中图形的颜色...

    android中shape的使用

    在Shape中,可以通过`&lt;solid&gt;`元素设置填充颜色,如`android:color="#FF0000"`表示红色填充。同时,也可以使用`&lt;gradient&gt;`元素来创建线性、径向、角度或对角线的渐变效果。 3. **边框样式** 使用`&lt;stroke&gt;`元素...

    android shape

    在上面的代码中,我们设置了填充颜色为 `#ff9d77`。 Gradient:渐变。android:startColor 和 android:endColor 分别为起始和结束颜色,android:angle 是渐变角度,必须为 45 的整数倍。另外,渐变默认的模式为 `...

    android shape样式

    1. **颜色填充(solid)**:通过`&lt;solid&gt;`标签,我们可以设置形状的填充颜色,如`android:color="#FF0000"`表示红色填充。 2. **边框(stroke)**:`&lt;stroke&gt;`标签用于定义形状的边框。可以设置边框宽度(`android:...

    Android_shape

    `shape`元素可以设置填充颜色或渐变: - `solid`用于填充单色,如上面的例子所示。 - `gradient`用于设置渐变颜色,可以是线性渐变、径向渐变或扫描线渐变。例如,线性渐变从红色渐变为蓝色: ```xml android:...

    Android shape属性详解

    1. `android:color`:设置形状的颜色,通常用于填充形状内部。 2. `android:gradient`:定义渐变色。可以设置线性渐变(`android:type="linear"`)、径向渐变(`android:type="radial"`)、扫描渐变(`android:type=...

    Android控件美化之Shape的使用

    在`Shape`的XML文件中,可以通过`&lt;solid&gt;`标签并结合`android:color`属性来指定填充颜色。例如: ```xml &lt;solid android:color="#ff9d77"/&gt; ``` 这段代码定义了一个实心的形状,其填充颜色为`#ff9d77`。 #### ...

    Android-shape标签的使用

    - `android:background`:设置背景颜色,如`android:background="#FF0000"`表示红色。 2. **椭圆(oval)**: - `android:shape="oval"`:创建一个椭圆。椭圆的大小由其父视图的尺寸决定。 3. **线(line)**: ...

    Android shape 属性深入用法

    这个元素用来设置形状的填充颜色。例如: ```xml &lt;solid android:color="@color/colorPrimary" /&gt; ``` 其中`@color/colorPrimary`是一个颜色资源引用,可以替换为你需要的任何颜色。 2. ****: 定义形状的...

    AndroidUI设计,android——shape

    通过`shape`,开发者可以实现丰富多彩的界面效果,包括设置填充颜色、边框宽度和颜色、渐变效果等。在Android应用的界面布局中,`shape`通常作为`&lt;item&gt;`标签内的一个元素存在于`drawable`资源文件中。 一、`shape`...

    android Shape介绍

    -- 填充颜色 --&gt; &lt;stroke android:width="2dp" android:color="#0000FF"/&gt; &lt;!-- 边框宽度和颜色 --&gt; &lt;padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp"/&gt; &lt;!-- 内边距 --&gt;...

    Android之shape实现控件圆角、背景等

    -- 填充颜色 --&gt; &lt;stroke android:width="dp_value" android:color="#color_value"/&gt; &lt;!-- 边框宽度和颜色 --&gt; &lt;corners android:radius="dp_value"/&gt; &lt;!-- 圆角半径 --&gt; &lt;padding android:left="dp_value" ...

    平行四边形的效果实现

    首先,ShapeDrawable是Android SDK提供的一种可绘制对象,它允许开发者自定义形状并对其进行填充和描边。在实现平行四边形效果时,我们通常不会直接使用ShapeDrawable,因为它默认只支持矩形、圆形等基本形状。不过...

Global site tag (gtag.js) - Google Analytics