在使用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);

在使用shape的同时,用代码修改shape的颜色属性,布布扣,bubuko.com

时间: 2024-10-15 22:27:39

在使用shape的同时,用代码修改shape的颜色属性的相关文章

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

Android里面经常会使用shape来定制一些View的背景,可以修改View的背景颜色,形状等属性 一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是颜色是在代码里面设置的 最开始的思路是先在代码里给View设置颜色,再在shape里面设置solid属性为透明色 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="htt

Html 修改placeholder的颜色属性css样式

项目需求需要修改文本框的placeholder 的文本颜色, 百度下, 备忘,我使用的是这种方法, ::-webkit-input-placeholder { /* WebKit browsers */ color: #999; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #999; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #999; } :-ms-i

一次js代码修改不更新问题的解决

今天遇到一个问题,虽说问题不大,但弄得本人脑袋发麻 我讲javascript修改后,刷新页面或者清除浏览器缓存,修改后的效果也不出现,害的我好苦啊 最后想到自己是新装的机子是不是是浏览器设置的原因 按以下方式完美解决 这应该是开发人员必须设置的 一次js代码修改不更新问题的解决,布布扣,bubuko.com

使用CSS/JS代码修改博客模板plus

之前对CSS/JavaScript了解还不深,只是把模板的CSS胡乱修改了几个属性.最近正好也在做一个网站的前端,学习了不少东西,再来改一改~ 上次最后之所以铩羽而归,是因为从CSS里找不到那些#和.对应的东西控制的都是啥子,这回不在看那个CSS了,直接用浏览器的开发者模式打开博客,一级一级找下去,看控制要改的内容的都是哪个DIV,把那些呆滞傻二的字体一一改掉: .cnblogs_code pre { font-family: Courier New!important; font-size:

钩取API之代码修改方法【一】

IAT方式就不去花精力了,加了壳的程序用这方法压根用不上. 就熟悉一下代码修改方法.书上用的是隐藏进程的实例 第一种办法 一,枚举进程,给所有进程加载DLL[用远程线程注入] 二,传入需要隐藏的进程名 三,判断有没有修改过需要钩取的函数,如果还没有修改过就改掉,跳向自己的函数,同时保存好原来的值 四,在自己的替代函数里将原来的值修改回去,并再执行一次,执行完做相关处理 五,在自己的替代函数最后再钩取函数,修改跳转到替代函数 基本逻辑就是这样,像是移花接木啊... DLL代码: #define S

u-boot移植(十二)---代码修改---支持DM9000网卡

一.准备工作 1.1 原理图 CONFIG_DM9000_BASE 片选信号是接在nGCS4引脚,若要确定网卡的基地址,则要根据片选信号的接口去确定. 在三星2440的DATASHEET中memory control这一章的Figure 5-1. S3C2440A Memory Map after Reset 已经说明了片选4的地址,如下: 只要发出的信号在 0x20000000--0x28000000 之间,就会使得片选4引脚变为低电平.所以可以确定我们网卡的基地址为0x20000000. C

am335x UART1输入u-boot 调试信息代码修改

AM335x 调试信息UART1输出代码修改1. 关于pin_mux  的配置代码修改位置:/board/forlinx/ok335x/mux.c 1 void enable_uart0_pin_mux(void) 2 { 3 configure_module_pin_mux(uart0_pin_mux_spl); 4 configure_module_pin_mux(uart1_pin_mux); 5 } 6 将这行代码打开. 代码跟踪流程:arch/arm/cpu/armv7/start.S

iOS代码修改音量

最近在做一个项目,需要用户在打开APP后,自动将音量调节到某个值,于是研究了一下. 之前做过iOS上声音的研究,苹果对iPhone设备的输入/输出的控制很严格,因为苹果要控制用户体验的一致性.比如:用户将耳机拔下来的时候,苹果认为,用户这时候不希望其他人知道自己在听什么,于是这时候声音会被自动暂停.在音量调整上,苹果也采取了类似的策略.苹果认为,用户不需要APP来为他指定音量,因为这样有时候用户会感到不舒服.苹果的开发文档是这么说的: You cannot change device volum

js代码从页面移植到文件中失效或js代码修改后不起作用的解决办法

最近在做关于网站的项目,总是发生这样的问题 写的javascript代码在页面上没有问题,但是将js代码移植到.js的文件中,在页面上进行调用,总是出现失效等错误 另外修改后的js代码,重新刷新网页仍然不起作用 经过大量搜索并经过验证,可以用下面方法来解决 将js代码封装到js文件中失效的原因可能是js文件中存在中文注释,导致在执行的时候中断,在js文件尽量不要写中文注释 修改后的js代码刷新网页后不起效果可能是因为你所用的浏览器使用缓存的问题,可在浏览器中设置取消使用缓存,并删除临时文件,重启