`
h416756139
  • 浏览: 365884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

反锯齿办法

阅读更多

在Android中,目前,我知道有两种出现锯齿的情况。

① 当我们用Canvas绘制位图的时候,如果对位图进行了选择,则位图会出现锯齿。

② 在用View的RotateAnimation做动画时候,如果View当中包含有大量的图形,也会出现锯齿。我们分别以这两种情况加以考虑。


◆ 用Canvas绘制位的的情况。在用Canvas绘制位图时,一般地,我们使用drawBitmap函数家族,在这些函数中,都有一个Paint参数,要做到防止锯齿,我们就要使用到这个参数。如下:首先在你的构造函数中,需要创建一个Paint。 Paint mPaint = new Paint(); 然后,您需要设置两个参数: 1)mPaint.setAntiAlias(); 2)mPaint.setBitmapFilter(true)。第一个函数是用来防止边缘的锯齿,第二个函数是用来对位图进行滤波处理。最后,在画图的时候,调用drawBitmap函数,只需要将整个Paint传入即可。


◆ 有时候,当你做RotateAnimation时,你会发现,讨厌的锯齿又出现了。这个时候,由于你不能控制位图的绘制,只能用其他方法来实现防止锯齿。另外,如果你画的位图很多。不想每个位图的绘制都传入一个Paint。还有的时候,你不可能控制每个窗口的绘制的时候,您就需要用下面的方法来处理——对整个Canvas进行处理。


1)在您的构造函数中,创建一个Paint滤波器。 PaintFlagsDrawFilter mSetfil = new PaintFlagsDrawFilter(0, Paint.FILTER_BITMAP_FLAG);第一个参数是你要清除的标志位,第二个参数是你要设置的标志位。此处设置为对位图进行滤波。

2)当你在画图的时候,如果是View则在onDraw当中,如果是ViewGroup则在dispatchDraw中调用如下函数。 canvas.setDrawFilter( mSetfil );


★ 最后,另外,在Drawable类及其子类中,也有函数setFilterBitmap可以用来对Bitmap进行滤波处理,这样,当你选择Drawable时,会有抗锯齿的效果。

分享到:
评论

相关推荐

    反锯齿_反锯齿波_

    在电子和计算机图形学领域,"反锯齿"是一种处理技术,用于消除图像边缘的锯齿状不平滑现象,特别是在数字图像、图形渲染和显示设备中。在本例中,我们将关注的是数字信号处理中的反锯齿技术,特别是在生成波形时的...

    反锯齿直线示例

    在计算机图形学中,反锯齿(Anti-Aliasing)是一种重要的技术,用于提高图像的质量,特别是当绘制直线和曲线时。它旨在解决“锯齿”现象,即在低分辨率或像素化图像中,边缘呈现出阶梯状不平滑的效果。在本示例中,...

    arcgis平滑线反锯齿工具

    ECCartoExtension10.0.zip插件。附带使用说明,大家放心使用

    VC 画线反走样demo 抗锯齿

    走样通常表现为图像中出现明显的像素化或者锯齿状边缘,而反走样则通过平滑处理这些边界来消除这种现象。在给定的标题和描述中,我们关注的是在MFC(Microsoft Foundation Classes)环境下使用GDI(Graphics Device ...

    Unity5.0 的反锯齿Temporal.zip

    Temporal Reprojection 是用于Unity 5.0 的反锯齿,在Playdead内部使用的抗锯齿解决方案的源代码发布。要求Unity 5.0 命令复制Assets/* 到你的项目中在 'Project Settings/Quality'下禁用MSAA添加 ...

    HTML5Canvas如何取消反锯齿绘图

    一、问题的提出我们都知道反锯齿(anti-aliasing)绘图给我们带来更好的视觉体验,有了这个技术,绘制的图形的边缘再不是以前毛毛躁躁的样子了。这就是采用反锯齿算法的功劳。其实质就是把要绘制的颜色边缘和背景...

    反锯齿中文插件10.0

    平滑线插件主要是对线图层进行平滑处理,一般情况下将把栅格图转换成矢量图,产生的数据都是有很多锯齿或者完全成为一条直线,在交通地图或者其他电子地图中会严重影响其美观效果,这个时候就需要对线进行平滑处理。

    C#指针式反锯齿时钟

    在C#编程环境中,开发一个具有指针式反锯齿功能的时钟是一项技术挑战,因为C#本身并不直接支持指针操作,但它通过.NET框架提供了丰富的类库和功能来实现这一目标。以下是对这个“C#指针式反锯齿时钟”项目中涉及的...

    反锯齿画园角矩形函数

    在计算机图形学中,"反锯齿画园角矩形函数"是一种用于绘制具有平滑边缘的圆形或圆角矩形的技术。VB GDi+(Visual Basic中的Graphics Device Interface Plus)是微软提供的一种图形处理库,它扩展了GDI(Graphics ...

    Windows下QT文字的反锯齿的示例代码

    出于性能考虑,Qt对于小字体的处理直接转交给操作系统,这样使得Windows下的文字没有反锯齿的效果. 这里提供了一个workaround.对于实在需要实现反锯齿而又无从下手的人一点提示. 注:此乃解决此类问题的下下策,如有其它...

    万用反锯齿 SMAA_1.2

    标题“万用反锯齿 SMAA_1.2”指的是一个专门用于改善游戏画质的反锯齿技术,SMAA(Subpixel Morphological Anti-Aliasing)即次像素形态抗锯齿。这是一种高级的图像处理技术,旨在消除游戏画面中物体边缘出现的锯齿...

    delphi用canvas画线搞锯齿demo

    然而,当使用Canvas进行斜线绘制时,尤其是在高分辨率或放大显示的情况下,可能会出现锯齿现象,这主要源于像素级别的渲染问题。 锯齿现象是由于计算机屏幕由像素组成,而像素是方形的,当线条与像素边缘不完全对齐...

    CDC画图,消除锯齿

    在计算机图形学中,"锯齿"一词通常用来描述在屏幕上绘制图形时,由于像素化效果不理想而产生的不平滑边缘。特别是在线条、曲线等几何形状的描绘上,这种现象尤为明显。"消除锯齿"是提高图像质量的重要手段,尤其是在...

    GDI 实现抗锯齿

    在计算机图形学中,抗锯齿(Anti-Aliasing)是一种重要的技术,用于消除图像边缘的锯齿状不平滑现象,使图像看起来更加细腻和真实。在Windows应用程序开发中,GDI(Graphics Device Interface)是微软提供的一种图形...

    单片机C语言程序设计21 用DAC0832生成锯齿波(基于8051+Proteus仿真)

    单片机C语言程序设计21 用DAC0832生成锯齿波(基于8051+Proteus仿真)单片机C语言程序设计21 用DAC0832生成锯齿波(基于8051+Proteus仿真)单片机C语言程序设计21 用DAC0832生成锯齿波(基于8051+Proteus仿真)...

    QT实现抗锯齿圆形头像

    参考QT Demo(Image Composition),使用QT图片混合技术实现抗锯齿头像小Demo,Windows QtCreator创建运行通过。经过尝试setMask方式始终存在锯齿,最后在这种图片混合方式下尝试成功。build-showroundpic-Desktop_Qt_5...

    OpenGL+qt抗锯齿OpenGL+qt抗锯齿

    OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿OpenGL+qt抗锯齿...

    OpenGLES三种抗锯齿实现案例

    介绍Android OpenGL ES中,三种可用的抗锯齿实现方式,这里给出详细的代码实现。 文章介绍,请参考: https://blog.csdn.net/xiaxl/article/details/8873018

Global site tag (gtag.js) - Google Analytics