Android 抗锯齿的两种方法
Android 抗锯齿的两种方法
(其一:paint.setAntiAlias(ture);paint.setBitmapFilter(true))
在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时,会有抗锯齿的效果。
Android 抗锯齿的两种方法的更多相关文章
- android emulator启动的两种方法详解
android emulator启动的两种方法详解 转https://blog.csdn.net/TTS_Kevin/article/details/7452237 对于android学习者,模 ...
- android使用全局变量的两种方法
在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对象语言和过程语言区别很大,不再是include就可以的.这里我写了使用全局变量的两种方法: 1.使用applicati ...
- [转]android使用全局变量的两种方法
本文转自:http://blog.csdn.net/feiyangxiaomi/article/details/9966215 在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对 ...
- Android访问WebService的两种方法
首先解释一下WebService:WebService是一种基于SOAP协议的远程调用标准.通过WebService可以将不同操作系统平台,不同语言.不同技术整合到一起.详细见:http://baik ...
- (转)Android创建桌面快捷方式两种方法
[IT168技术]Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成. 谈谈在桌面上直接生成.个人觉得这个比较爽快,既然都是快捷方式了干嘛还 ...
- Android apk签名的两种方法
编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! 为了保证 ...
- android 实现分享功能两种方法
当我想做一个智能的记事本的时候,我就在尝试自己写一组分享功能.后来才知道,原来每个社交软件中都有自己的分享接口. 这就大大减少了我们的代码量了. 第一种方法:特点--简单 package com.ex ...
- 解决android 大图OOM的两种方法
最近做程序中,需要用到一张大图.这张图片是2880*2180大小的,在我开发所用的华为3C手机上显示没有问题,但是给米3装的时候,一打开马上报OOM错误.给nexus5装,则是图片无法出来,DDMS中 ...
- Android全屏的两种方法
在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改! 一.在代码中设置: [java] view plain copy package ...
随机推荐
- Ajax 知识点
AJAX 即"Asynchronous Javascript And XML"(异步JavaScript和XML) Ajax 不是某种编程语言,只是一种在无需重新加载整个网页的情况 ...
- JavaWeb 学习001-登录页面
首先实现一个web应用的登录页面 1.遇到的问题: Servlet中 post 或者 get 方式 不能提交? 就是提交后,控制台没有反应,而且浏览器显示如图: 这样应该是不能进行页面的跳转,对这个, ...
- 激活windows10 LTSB 2016
激活windows10 LTSB 2016 slmgr /ipk DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ slmgr /skms kms.firadio.net slmgr /at ...
- asp.net mvc 自定义身份验证
1.定义身份实体对象 /// <summary> /// 网站用户实体对象 /// </summary> public class DDTPrincipal : IPrinci ...
- 第三章 EnumUtil根据值获取枚举对象
项目中使用枚举类的好处这里不再赘述,在使用枚举值时,通常需要根据值来获取枚举对象,下面介绍两种实现方案: 1.在枚举类中定义方法实现 首先给出如下性别枚举类: public enum SexEnum ...
- SQL Server 集合处理
UNION ALL 返回两个结果集中所有的行,返回结果集中会存在重复行 UNION 返回两个结果集中去重的行,返回结果集中无重复行 INTERSECT 返回两个结果集都有的行,返回结果集中无重复行 E ...
- 三目运算符是不是在bug中躺了枪_折腾了一整天
Hand_result = !String.IsNullOrEmpty(e.ReadString) ? e.ReadString : GetHandCodeReadStringFromResultXm ...
- tomcat 内存问题 xms xmx permsize maxPermsize
转自:http://www.cnblogs.com/koik/p/4452029.html tomcat -Xms -Xmx -XX:PermSize -XX:MaxPermSize 在做ja ...
- .Net Framework运行机制
首先谈谈.net framework的组成 主要是有两大部分组成:CLR(公共语言运行库)和FCL(Framework类库) CLR的主要功能:和Java虚拟机一样也是一个运行时环境,是一个可由多种编 ...
- sqlite3 根据实体自动生成建表语句
public class BuildSqlTool { public static string GetCreateTableSql(object t) { //CREATE TABLE &quo ...