Android画图之抗锯齿

转载 2011年12月02日 12:08:14

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。
    方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。

Java代码  收藏代码
  1. paint.setAntiAlias(true);  

 


    方法二:给Canvas加上抗锯齿标志。
有些地方不能用paint的,就直接给canvas加抗锯齿,更方便。


Java代码  收藏代码
  1. canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));  

 

      测试代码如下: 

Java代码  收藏代码
  1. import android.content.Context;  
  2. import android.graphics.Bitmap;  
  3. import android.graphics.BitmapFactory;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Matrix;  
  6. import android.graphics.Paint;  
  7. import android.graphics.PaintFlagsDrawFilter;  
  8. import android.view.View;  
  9.   
  10. public class MyView extends View {  
  11.     private PaintFlagsDrawFilter pfd;  
  12.     private Paint mPaint = new Paint();  
  13.     private Matrix matrix = new Matrix();;  
  14.     private Bitmap bmp;  
  15.   
  16.     public MyView(Context context) {  
  17.         super(context);  
  18.         initialize();  
  19.     }  
  20.   
  21.     private void initialize() {  
  22.         pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);        
  23.         mPaint.setAntiAlias(true);  
  24.         matrix.setRotate(30);  
  25.         matrix.postScale(0.5f, 0.5f);  
  26.         bmp = BitmapFactory.decodeResource(getResources(), R.drawable.show);  
  27.     }  
  28.       
  29.     @Override  
  30.     public void dispatchDraw(Canvas canvas) {  
  31.         canvas.translate(1000);  
  32.         canvas.drawBitmap(bmp, matrix, null);  
  33.         canvas.translate(0250);  
  34.         canvas.drawBitmap(bmp, matrix, mPaint);  
  35.         canvas.setDrawFilter(pfd);  
  36.         canvas.translate(0250);  
  37.         canvas.drawBitmap(bmp, matrix, null);  
  38.     }  
  39. }  
 

    下图是效果:

 

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

相关文章推荐

Android 绘图中的抗锯齿处理

今天在读程序源码的过程中到一段这样的代码:canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FI...

Calligraphy使在Android中自定义字体变得Easy!!!

Calligraphy使在Android中自定义字体变得Easy!!! Calligraphy GitHub工程地址 由于现在大多数GitHub工程都是用Gradle构建的,所以工程下提供的Sam...

android画图抗锯齿的几个方法

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。 方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方...

Android画图之抗锯齿

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式。     方法一:给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法...
  • qjbagu
  • qjbagu
  • 2012年01月04日 15:26
  • 626

Android抗锯齿demo

  • 2014年03月03日 20:46
  • 1.49MB
  • 下载

android图片拼接代码以及图片抗锯齿

将两张图片纵向排列,合并为一张图片。 public class PicMakeActivity extends Activity { String pathBase = Environment.g...
  • zhou699
  • zhou699
  • 2012年06月09日 07:56
  • 2710

android 绘图时抗锯齿方法两种

其一:paint.setAntiAlias(ture);paint.setBitmapFilter(true)

Android自定义View——可设置形状(圆形、圆角矩形、椭圆)的ImageView,抗锯齿

(如果对自定义View不太熟悉,可以查看上篇文章《Android自定义View——基础知识篇》) 有时显示的图片(如用户头像)是圆形或者圆角矩形的,如果我们把每一种形状的图片都裁剪成一个图片文件...

Android游戏开发---抗锯齿设置

新年新气象,发篇文章。祝看到文章的同志们新年快乐。 抗锯齿在游戏中很重要。玩过大型游戏的同学肯定知道都有抗锯齿的设置。Android中也需要。 出现锯齿条件:倾斜或旋转、快速变化。 当在屏幕...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android画图之抗锯齿
举报原因:
原因补充:

(最多只允许输入30个字)