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

 更新时间:2017年04月13日 15:33:26   作者:安儿IT  
本篇文章主要介绍了Android画图之抗锯齿paint和Canvas两种方式实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实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); 
  } 
} 

下图是效果:

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

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

相关文章

  • 朋友圈实现图片+文字转发功能(必看篇)

    朋友圈实现图片+文字转发功能(必看篇)

    下面小编就为大家带来一篇朋友圈实现图片+文字转发功能(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • android九宫格可分页加载控件使用详解

    android九宫格可分页加载控件使用详解

    这篇文章主要介绍了android九宫格可分页加载控件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • Android内核源码 在Ubuntu上下载,编译,安装

    Android内核源码 在Ubuntu上下载,编译,安装

    本文主要介绍Android内核源码,想学习深入研究Android的朋友肯定要看看Android内核知识的,这里对下载Android内核源代码的下载,安装,编译做了详细的介绍,有兴趣的小伙伴可以参考下
    2016-08-08
  • Android开发实现圆形图片功能示例

    Android开发实现圆形图片功能示例

    这篇文章主要介绍了Android开发实现圆形图片功能,涉及Android实现圆形图片的界面布局与CirImageView组件相关使用操作技巧,需要的朋友可以参考下
    2019-04-04
  • flutter实现底部不规则导航栏

    flutter实现底部不规则导航栏

    这篇文章主要为大家详细介绍了flutter实现底部不规则导航栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • android手机获取gps和基站的经纬度地址实现代码

    android手机获取gps和基站的经纬度地址实现代码

    android手机如何获取gps和基站的经纬度地址,疑问,于是网上搜集整理一些,拿出来和大家分享下,希望可以帮助你们
    2012-12-12
  • 从零开始使用gradle配置即可执行的Hook库详解

    从零开始使用gradle配置即可执行的Hook库详解

    这篇文章主要为大家介绍了从零开始使用gradle配置即可执行的Hook库详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Android与H5互调详细介绍

    Android与H5互调详细介绍

    这篇文章主要介绍了Android与H5互调详细介绍的相关资料,需要的朋友可以参考下
    2017-04-04
  • Android实现ViewFlipper图片动画滑动

    Android实现ViewFlipper图片动画滑动

    这篇文章主要为大家详细介绍了Android实现ViewFlipper图片动画滑动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android开发EditText禁止输入监听及InputFilter字符过滤

    Android开发EditText禁止输入监听及InputFilter字符过滤

    这篇文章主要为大家介绍了Android开发EditText禁止输入监听及InputFilter字符过滤示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论