android paint和Canvas抗锯齿 Android画图之抗锯齿paint和Canvas两种方式实例

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

android paint和Canvas抗锯齿 Android画图之抗锯齿paint和Canvas两种方式实例

安儿IT   2021-03-24 我要评论
想了解Android画图之抗锯齿paint和Canvas两种方式实例的相关内容吗,安儿IT在本文为您仔细讲解android paint和Canvas抗锯齿的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:android,canvas抗锯齿,android,paint,抗锯齿,android,抗锯齿,下面大家一起来学习吧。

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。

方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。

paint.setAntiAlias(true); 

方法二:给Canvas加上抗锯齿标志。

有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。

复制代码 代码如下:

canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG)); 

eg:

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); 
  } 
} 

下图是效果:

可以看出,两种方式都挺有效的。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们