shape--用代码修改shape的颜色属性

Posted 左手指月的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shape--用代码修改shape的颜色属性相关的知识,希望对你有一定的参考价值。

 

android里面经常会使用shape来定制一些View的背景,可以修改View的背景颜色,形状等属性

一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是颜色是在代码里面设置的

最开始的思路是先在代码里给View设置颜色,再在shape里面设置solid属性为透明色

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.     <corners  
  4.         android:topLeftRadius="8dp"  
  5.         android:topRightRadius="8dp"  
  6.         android:bottomLeftRadius="8dp"  
  7.         android:bottomRightRadius="8dp"/>  
  8.       
  9.     <solid  
  10.         android:color="#00000000"/>  
  11.   
  12. </shape>  
 
  1. View.setBackgroundColor(color);  
  2. View.setBackgroundDrawable(R.drawable.shape);  


很遗憾,不能实现我想要的需求,每设置一次Background,Background就会就会被替换掉

最后上网Google了下,找到解决方案了http://stackoverflow.com/questions/16775891/how-to-change-solid-color-from-the-code

 
    1. GradientDrawable myGrad = (GradientDrawable)view.getBackground();  
    2. myGrad.setColor(color);  

 

 

以上是关于shape--用代码修改shape的颜色属性的主要内容,如果未能解决你的问题,请参考以下文章

Android shape动态修改颜色

代码动态修改shape的颜色

如何修改ArcGIS中shape文件属性表的字段类型

android开发中shape图形中如何引用?attr属性,在做主题切换时,要达到shape图形的颜色与当前主题颜色一致

numpy:数组的形状与展开

Android关于shape的gradient属性详解