Android代码动态设置圆角,颜色,线条背景 您所在的位置:网站首页 java中设置背景颜色的代码 Android代码动态设置圆角,颜色,线条背景

Android代码动态设置圆角,颜色,线条背景

2024-07-08 01:48| 来源: 网络整理| 查看: 265

开发中平时用到了圆角背景,但是每个圆角背景都不一样,这样还要创建多个xml布局,为了简单快捷,可以使用代码创建圆角背景. 这里以创建矩形圆角背景为例.GradientDrawable.RECTANGLE. 先看效果图 在这里插入图片描述

常用方法(创建xml)代码 动态创建代码修改已有布局 创建xml 代码 动态创建

1.创建每个角度都一样的背景

/** * 创建背景颜色 * * @param color 填充色 * @param strokeColor 线条颜色 * @param strokeWidth 线条宽度 单位px * @param radius 角度 px */ public static GradientDrawable createRectangleDrawable(@ColorInt int color, @ColorInt int strokeColor, int strokeWidth, float radius) { try { GradientDrawable radiusBg = new GradientDrawable(); //设置Shape类型 radiusBg.setShape(GradientDrawable.RECTANGLE); //设置填充颜色 radiusBg.setColor(color); //设置线条粗心和颜色,px radiusBg.setStroke(strokeWidth, strokeColor); //设置圆角角度,如果每个角度都一样,则使用此方法 radiusBg.setCornerRadius(radius); return radiusBg; } catch (Exception e) { return new GradientDrawable(); } }

2.自定义每个方向的圆角角度

/** * 创建背景颜色 * * @param color 填充色 * @param strokeColor 线条颜色 * @param strokeWidth 线条宽度 单位px * @param radius 角度 px,长度为4,分别表示左上,右上,右下,左下的角度 */ public static GradientDrawable createRectangleDrawable(@ColorInt int color, @ColorInt int strokeColor, int strokeWidth, float radius[]) { try { GradientDrawable radiusBg = new GradientDrawable(); //设置Shape类型 radiusBg.setShape(GradientDrawable.RECTANGLE); //设置填充颜色 radiusBg.setColor(color); //设置线条粗心和颜色,px radiusBg.setStroke(strokeWidth, strokeColor); //每连续的两个数值表示是一个角度,四组:左上,右上,右下,左下 if (radius != null && radius.length == 4) { radiusBg.setCornerRadii(new float[]{radius[0], radius[0], radius[1], radius[1], radius[2], radius[2], radius[3], radius[3]}); } return radiusBg; } catch (Exception e) { return new GradientDrawable(); } } 代码修改已有布局

前提是在xml中,或者已设置的背景,必须是GradientDrawable.否则就会异常

GradientDrawable bg4 = (GradientDrawable) view.getBackground(); //修改填充色 bg4.setColor(Color.parseColor("#EEEE00")); //这里还可以修改线条, 角度..等

这里对于不同的不需要设置的属性,可以在方法中判断一下,不设置,或者给其默认值. 例如:如果不需要设置边框颜色和宽度,那么就不需要使用setStroke()方法设置. 这里就不一一举例了.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有