android 如何设置图片颜色的透明度
来源:互联网 发布:ftp服务器的控制端口 编辑:程序博客网 时间:2024/05/16 05:10
作者:田仁智
Android系统支持的颜色是由4个值组成的,前3个为RGB,也就是我们常说的三原色(红、绿、蓝),最后一个值是A,也就是Alpha。这4个值都在0~255之间。颜色值越小,表示该颜色越淡,颜色值越大,表示该颜色越深。如果RGB都是0,就是黑色,如果都为255,就是白色。Alpha也需要在0~255之间变化。Alpha的值越小,颜色就越透明,Alpha的值越大,颜色就不透明。当Alpha的值为0时,颜色完全透明,完全透明的位图或者图形从View上消失。当Alpha的值为255时,颜色不透明。从Alpha的特性可知,设置颜色的透明度实际上就是设置Alpha值。
设置颜色的透明度可以通过Paint类的setAlpha方法来完成。因为做项目中,很多时候不需要让照片完全透明的,所以试验做了一个可以调节图片透明度的程序。
本例子通过一个滑杆(SeekBar)组件改变位图中颜色的Alpha值(透明度)。显示位图的MyView类的代码如下:
private class MyView extends View
{
private Bitmapbitmap;
public MyView(Context context)
{
super(context);
InputStream is =getResources().openRawResource(R.drawable.image);
bitmap = BitmapFactory.decodeStream(is);
setBackgroundColor(Color.WHITE);
}
@Override
protected void onDraw(Canvas canvas)
{
Paint paint = new Paint();
paint.setAlpha(alpha);
canvas.drawBitmap(bitmap,new Rect(0, 0, bitmap.getWidth(), bitmap
.getHeight()), new Rect(10, 10, 310, 235), paint);
}
}
上面代码中的drawBitMap方法的第2个参数表示原位图的复制区域,在本例中表示复制整个原位图。第3个参数表示绘制的目标区域。
SeekBar组件的onProgressChanged时间方法的代码如下:
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
alpha = progress;
setTitle("alpha:" + progress);
myView.invalidate();
}
运行本例,将滑杆移动到靠左和靠右的位置,将会看到如下面两个图的效果:
- android 如何设置图片颜色的透明度
- android 如何设置图片颜色的透明度
- android 如何设置颜色的透明度!
- 如何设置Android中控件的颜色透明度
- 如何设置Android中控件的颜色透明度
- Android 设置颜色值的透明度
- Java如何设置图片的透明度
- android设置图片透明度
- Android 颜色设置:透明度换算
- 设置图片的透明度
- html中如何设置背景和背景颜色的透明度
- android 如何设置背景的透明度
- android 如何设置dialog的透明度
- android 如何设置背景的透明度 .
- android 如何设置背景的透明度
- android 如何设置背景的透明度
- android 如何设置背景的透明度 (转)
- android 如何设置背景的透明度
- JS判断浏览器类型和屏幕分辨率来调用不同的CSS样式
- 让DLL卸载自身
- 洋葱泡红酒好处惊人 - Qzone日志
- php的safe_mode
- 1001. 什么,语法错误!?
- android 如何设置图片颜色的透明度
- 10个数的比较
- mysql复制表结构、表数据
- javascript中绑定带参数的事件响应函数
- 判断整除并求和
- php,你可能不知道的“死亡”陷阱
- java代理
- 硬盘接口简介
- 随机生成十个不重复的整数