android截取图片一个圆,得到的图片总是存在锯齿,怎么办?
我用bitmap
package com.music.control.anima;
import com.music.control.R;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Bundle;
import android.widget.ImageView;
public class CutBitmapCircle extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cut_bitmap_circle);
int targetWidth = 250;
int targetHeight = 250;
Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(targetBitmap);
PaintFlagsDrawFilter pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
canvas.setDrawFilter(pfd);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
Path path = new Path();
path.addCircle(((float) targetWidth - 1) / 2,
((float) targetHeight - 1) / 2,
(Math.min(((float) targetWidth), ((float) targetHeight)) / 2),
Path.Direction.CCW);
canvas.clipPath(path);
Bitmap sourceBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.goodlook);
canvas.drawBitmap(sourceBitmap, new Rect(0, 0, sourceBitmap.getWidth(),
sourceBitmap.getHeight()), new Rect(0, 0, targetWidth,
targetHeight), paint);
// paint.setColor(Color.BLUE);
// paint.setStyle(Style.STROKE);
// paint.setAntiAlias(true);
//
// for (int i = 0; i < 2; i++) {
// canvas.drawCircle(((float) targetWidth - 1) / 2 ,
// ((float) targetHeight - 1) / 2 ,
// (Math.min(((float) targetWidth), ((float) targetHeight)) / 2) -1 + i, paint);
// }
canvas.drawBitmap(
sourceBitmap,
new Rect(0, 0, sourceBitmap.getWidth(), sourceBitmap
.getHeight()), new Rect(0, 0, targetWidth,
targetHeight), paint);
ImageView imageView = (ImageView) findViewById(R.id.cutbitmapcircle);
Matrix matrix = new Matrix();
matrix.setRotate(60);
//旋转图像,并生成新的Bitmap对像
Bitmap rotateBitmap=Bitmap.createBitmap(targetBitmap, 0, 0, targetBitmap.getWidth(), targetBitmap.getHeight(), matrix, true);
imageView.setImageBitmap(rotateBitmap);
}
}
已经设置了很多的抗锯齿,但是在模拟器上看到截取得到的图片总是存在锯齿。
我属于新手,已经想尽办法,但是都不起作用。。。那个朋友可以帮下我,感激不尽。。。。。。