Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android画图之抗锯齿paint和Canvas两种方式实例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

paint.setAntiAlias(true); @H_801_10@

方法二:给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,mPaint); 
    canvas.setDrawFilter(pfd); 
    canvas.translate(0,null); 
  } 
} 

@H_801_10@

下图是效果

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

大佬总结

以上是大佬教程为你收集整理的Android画图之抗锯齿paint和Canvas两种方式实例全部内容,希望文章能够帮你解决Android画图之抗锯齿paint和Canvas两种方式实例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。