如何设置Android中控件的颜色透明度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置Android中控件的颜色透明度相关的知识,希望对你有一定的参考价值。

android设置TextView控件的背景透明度和字体透明度
2014-06-12 13:36:54 By: dwtedx

Android
dwtedx
0
11652

应用场景:有如下控件、要设置其为透明样式

TextView tv = (TextView) findViewById(R.id.xx);

第1种方法:

tv.setBackgroundColor(Color.argb(255, 0, 255, 0)); //背景透明度
tv.setTextColor(Color.argb(255, 0, 255, 0)); //文字透明度

第2种方法:

tv.setTextColor(0xffff00ff);
0xffff00ff是int类型的数据,分组一下0x|ff|ff00ff,0x是代表颜色整数的标记,ff是表示透明度,ff00ff表示颜色,
注意:这里ffff00ff必须是8个的颜色表示,不接受ff00ff这种6个的颜色表示。

颜色和不透明度 (alpha) 值以十六进制表示法表示。

任何一种颜色的值范围都是 0 到 255(00 到 ff)。

对于 alpha,00 表示完全透明,ff 表示完全不透明。

表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00到ff);“rr=red”(00 到 ff)。

例如,如果设置字体颜色的不透明度为 50% 的蓝色,

则应指定以下值:7fff0000(如何把十进制的50换算成十六进制的50:十进制到其他进制用除,一直除到商为0,

然后每次余数逆序排列就是结果,其他进制到十进制用乘,比如此处用到除法,

80/16商5余0,再用前一次的商除16得商0余5,停止相除,逆序排列余数得到0x50)。

第3种方法:

在xml文件中直接设置颜色值,同下。

Button或者ImageButton的背景设为透明或者半透明

xml文件

半透明

<Button Android:background="#e0000000" ... />
透明

<Button android:background="#00000000" ... />
Java代码

View v = findViewById(R.id.xx);//找到你要设透明背景的layout 的id
v.getBackground().setAlpha(100);//0~255透明度值
参考技术A   设置Android中控件的颜色透明度,可自由设置在layout里也可以在activity里
  eclipse

  1

  #ff000000 此为16进制颜色代码,
  前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取)。
  2
  透明度分为256阶(0-255),计算机上用16进制表示为(00-ff)。透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是127)。
  3
  10进制的255换算成16进制是ff,127换算成16进制是7f,#7f000000 代表50%透明度的黑色。 (写成#50000000当然是不行的)进制转换可使用win7自带计算器(转为科学型)。例:25%透明度的一种红色“#3ff70000
参考技术B 1、#ff000000 此为16进制颜色代码,
前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取)。
2、透明度分为256阶(0-255),计算机上用16进制表示为(00-ff)。透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是127)。
3、10进制的255换算成16进制是ff,127换算成16进制是7f,#7f000000 代表50%透明度的黑色。 (写成#50000000当然是不行的)进制转换可使用win7自带计算器(转为科学型)。例:25%透明度的一种红色“#3ff70000
参考技术C 前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取)。
2、透明度分为256阶(0-255),计算机上用16进制表示为(00-ff)。透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是127)。
3、10进制的255换算成16进制是ff,127换算成16进制是7f,#7f000000 代表50%透明度的黑色。 (写成#50000000当然是不行的)进制转换可使用win7自带计算器(转为科学型)。例:25%透明度的一种红色“#3ff70000

MFC中richedit控件设置为透明后出现文字残留现象

向下滑动后

请问这样的问题如何解决啊?

透明度,颜色,背景图都有关系。背景图的格式也有关系。具体你这个问题,我没有遇到过。

看到你的截图,感觉象是richedit本身出错了。你要保证你的操作系统的richedit的补丁安装好了。以前有些操作系统的richedit的dll有一些BUG。

另外透明度的绘制通常包括这几步:
1.背景图绘制
2.前景图按一个算法,通常是做平均,迭加。不过richedit有可能是直接drawtext到canvas(dc)上的。这时你的笔的颜色,背景的颜色,好象有些绘制里还会有一个mask设置。
3.将合成后的图从后台缓存DC里绘制到前台控件上
4.处理滚动
滚动通常是快速完成,不会再重新1,2,3。 往往是从后台DC里做一次移位就绘制出来。
如果透明这个算法是显卡处理的。有硬件加速,那么透明应该是在从后台DC会绘制出来计算的。

所以你还要检查一下你的显卡的设置,把有些选项关闭,尽量用软件加速。关闭硬件加速看看。
参考技术A 将richedit重画

以上是关于如何设置Android中控件的颜色透明度的主要内容,如果未能解决你的问题,请参考以下文章

如何设置Android中控件的颜色透明度

如何设置Android中控件的颜色透明度

Android 布局控件透明度设置

Android 布局控件透明度设置

MFC中richedit控件设置为透明后出现文字残留现象

Android 透明度设置详解