Android编程画图之抗锯齿解决方法
作者:chroya 时间:2022-12-17 12:03:54
本文实例分析了Android编程画图之抗锯齿解决方法。分享给大家供大家参考,具体如下:
在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。
方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。
paint.setAntiAlias(true);
方法二:给Canvas加上抗锯齿标志。
有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
测试代码如下:
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.view.View;
public class MyView extends View {
private PaintFlagsDrawFilter pfd;
private Paint mPaint = new Paint();
private Matrix matrix = new Matrix();;
private Bitmap bmp;
public MyView(Context context) {
super(context);
initialize();
}
private void initialize() {
pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
mPaint.setAntiAlias(true);
matrix.setRotate(30);
matrix.postScale(0.5f, 0.5f);
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.show);
}
@Override
public void dispatchDraw(Canvas canvas) {
canvas.translate(100, 0);
canvas.drawBitmap(bmp, matrix, null);
canvas.translate(0, 250);
canvas.drawBitmap(bmp, matrix, mPaint);
canvas.setDrawFilter(pfd);
canvas.translate(0, 250);
canvas.drawBitmap(bmp, matrix, null);
}
}
下图是效果:
可以看出,两种方式都挺有效的。
希望本文所述对大家Android程序设计有所帮助。
标签:Android,画图
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android TagCloudView云标签的使用方法
2023-03-28 14:29:20
![](https://img.aspxhome.com/file/2023/3/138653_0s.gif)
C#中datagridview的EditingControlShowing事件用法实例
2021-05-27 23:08:43
Java构造方法和方法重载详解
2021-06-06 13:23:00
![](https://img.aspxhome.com/file/2023/4/113404_0s.png)
Jpa Specification如何实现and和or同时使用查询
2023-10-17 20:49:38
老生常谈java中的fail-fast机制
2022-01-27 15:31:50
java代码实现C盘文件统计工具
2021-06-23 01:22:38
![](https://img.aspxhome.com/file/2023/4/67664_0s.png)
Android7.0 MTK设置默认桌面
2023-09-26 12:30:43
C#实现chart控件动态曲线绘制
2022-01-22 19:10:11
![](https://img.aspxhome.com/file/2023/7/116637_0s.jpg)
Spring Boot产生环形注入的解决方案
2023-11-08 20:14:04
unity实现简单贪吃蛇游戏
2023-05-25 23:59:53
![](https://img.aspxhome.com/file/2023/3/106373_0s.jpg)
C#使用Enum.TryParse()实现枚举安全转换
2021-10-27 05:29:06
![](https://img.aspxhome.com/file/2023/5/119405_0s.png)
C#使用SQL Dataset数据集代码实例
2023-02-24 08:23:07
关于MD5算法原理与常用实现方式
2023-03-18 11:09:04
![](https://img.aspxhome.com/file/2023/8/62828_0s.png)
C# 实现FTP上传资料的示例
2023-10-31 21:19:40
Java Web程序实现返回JSON字符串的方法总结
2023-07-28 22:46:48
![](https://img.aspxhome.com/file/2023/9/66169_0s.png)
C#实现多线程的同步方法实例分析
2021-11-01 11:56:42
C# JSON格式化转换辅助类 ConvertJson
2023-09-27 19:40:20
Java Hibernate使用SessionFactory创建Session案例详解
2022-03-04 06:21:28
Java实现驼峰和下划线互相转换的示例代码
2023-12-16 15:23:48
![](https://img.aspxhome.com/file/2023/6/61066_0s.png)
Android studio 3.5.2安装图文教程详解
2022-06-27 19:15:46
![](https://img.aspxhome.com/file/2023/5/90175_0s.jpg)