首页 > 代码库 > 在使用shape的同时,用代码修改shape的颜色属性
在使用shape的同时,用代码修改shape的颜色属性
Android里面经常会使用shape来定制一些View的背景
可以修改View的背景颜色,形状等属性
一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是颜色是在代码里面设置的
最开始的思路是先在代码里给View设置颜色,再在shape里面设置solid属性为透明色
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <corners android:topLeftRadius="8dp" android:topRightRadius="8dp" android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp"/> <solid android:color="#00000000"/> </shape>
View.setBackgroundColor(color); View.setBackgroundDrawable(R.drawable.shape);
很遗憾,不能实现我想要的需求,每设置一次Background,Background就会就会被替换掉
最后上网Google了下,找到解决方案了http://stackoverflow.com/questions/16775891/how-to-change-solid-color-from-the-code
GradientDrawable myGrad = (GradientDrawable)view.getBackground(); myGrad.setColor(color);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。