Android編程畫圖之抗鋸齒解決方法
更新時間:2016年01月08日 14:31:25 作者:chroya
這篇文章主要介紹了Android編程畫圖之抗鋸齒解決方法,分析了兩種抗鋸齒的實現(xiàn)方法,并給出了實例代碼進行總結(jié),需要的朋友可以參考下
本文實例分析了Android編程畫圖之抗鋸齒解決方法。分享給大家供大家參考,具體如下:
在畫圖的時候,圖片如果旋轉(zhuǎn)或縮放之后,總是會出現(xiàn)那些華麗的鋸齒。其實Android自帶了解決方式。
方法一:給Paint加上抗鋸齒標志。然后將Paint對象作為參數(shù)傳給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程序設計有所幫助。
相關文章
使用Compose制作抖音快手視頻進度條Loading動畫效果
這篇文章主要為大家介紹了使用Compose制作抖音快手視頻進度條Loading動畫效果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
基于Android CALL && SendMes Test的相關介紹
本篇文章小編為大家介紹,Android CALL && SendMes Test 需要的朋友參考下2013-04-04
總結(jié)Android中多線程更新應用的頁面信息的方式
這篇文章主要介紹了總結(jié)Android中多線程更新應用的頁面信息的方式,文中共總結(jié)了runOnUiThread、Handler、AsyncTask異步以及View直接在UI線程中更新的方法,需要的朋友可以參考下2016-02-02

