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程序设计有所帮助。

标签:Android,画图
0
投稿

猜你喜欢

  • Android TagCloudView云标签的使用方法

    2023-03-28 14:29:20
  • C#中datagridview的EditingControlShowing事件用法实例

    2021-05-27 23:08:43
  • Java构造方法和方法重载详解

    2021-06-06 13:23:00
  • 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
  • Android7.0 MTK设置默认桌面

    2023-09-26 12:30:43
  • C#实现chart控件动态曲线绘制

    2022-01-22 19:10:11
  • Spring Boot产生环形注入的解决方案

    2023-11-08 20:14:04
  • unity实现简单贪吃蛇游戏

    2023-05-25 23:59:53
  • C#使用Enum.TryParse()实现枚举安全转换

    2021-10-27 05:29:06
  • C#使用SQL Dataset数据集代码实例

    2023-02-24 08:23:07
  • 关于MD5算法原理与常用实现方式

    2023-03-18 11:09:04
  • C# 实现FTP上传资料的示例

    2023-10-31 21:19:40
  • Java Web程序实现返回JSON字符串的方法总结

    2023-07-28 22:46:48
  • 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
  • Android studio 3.5.2安装图文教程详解

    2022-06-27 19:15:46
  • asp之家 软件编程 m.aspxhome.com