Android 中的防锯齿
来源:互联网 发布:js 正则匹配标点符号 编辑:程序博客网 时间:2024/05/02 00:58
在Android中,目前,我知道有两种出现锯齿的情况。
1)当我们用Canvas绘制位图的时候,如果对位图进行了选择,则位图会出现锯齿。
2)在用View的RotateAnimation做动画时候,如果View当中包含有大量的图形,也会出现锯齿。
我们分别以这两种情况加以考虑。
一,用Canvas绘制位的的情况。
在用Canvas绘制位图时,一般地,我们使用drawBitmap函数家族,在这些函数中,都有一个Paint参数,要做到防止锯齿,我们就要使用到这个参数。
如下:首先在你的构造函数中,需要创建一个Paint。
Paint mPaint = new Paint()
然后,您需要设置两个参数:
1) mPaint.setAntiAlias();
2) mPaint.setBitmapFilter(true)。
第一个函数是用来防止边缘的锯齿,第二个函数是用来对位图进行滤波处理。最后,在画图的时候,调用drawBitmap函数,只需要将整个Paint传入即可。
二,RotateAnimation
有时候,当你做RotateAnimation时,你会发现,讨厌的锯齿又出现了。这个时候,由于你不能控制位图的绘制,只能用其他方法来实现防止锯齿。另外,如果你画的位图很多。不想每个位图的绘制都传入一个Paint。还有的时候,你不可能控制每个窗口的绘制的时候,您就需要用下面的方法来处理------对整个Canvas进行处理。
1)在您的构造函数中,创建一个Paint滤波器。
PaintFlagsDrawFilter mSetfil = new PaintFlagsDrawFilter(0, Paint.FILTER_BITMAP_FLAG);
第一个参数是你要清除的标志位,第二个参数是你要设置的标志位。此处设置为对位图进行滤波。
2)当你在画图的时候,如果是View则在onDraw当中,如果是ViewGroup则在dispatchDraw中调用如下函数。
canvas.setDrawFilter( mSetfil );
三,Drawable
最后,另外,在Drawable类及其子类中,也有函数setFilterBitmap可以用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯齿的效果。
- Android 中的防锯齿
- Android 中的防锯齿
- Android 中的防锯齿
- Android当中的防锯齿(Bitmap & Canvas )
- Android当中的防锯齿(Bitmap & Canvas )
- Canvas文字防锯齿
- Android 绘图中的抗锯齿处理
- android画图抗锯齿
- android图片抗锯齿
- android 抗锯齿效果
- android中抗锯齿
- Android 画图抗锯齿
- Android OpenglES 反锯齿
- Android抗锯齿设置
- android 如何消除锯齿
- android锯齿问题,解决方案
- openGL中的抗锯齿实现
- OpenGL中的抗锯齿功能
- eclipse插件下载不了咋办
- slf4j 和 log4j合用的(Maven)配置
- 数据存储之四种方式之一
- C#1面向对象
- 产品经理就应该这样!
- Android 中的防锯齿
- 浅析Android下的Android.mk文件
- 循环for与while的区别
- scanf小事总结
- mac下ant的安装和环境变量配置(3.0版本)
- mac老听着音乐,插拔耳机后,就没有声音了
- C++ static、const和static const 以及它们的初始化
- 自定义ProgressBar的Spinner图片
- Android开发规范之编码规范