android截取图片一个圆,得到的图片总是存在锯齿,怎么办?

panpanguo 2013-01-10 09:53:38
我用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);
}

}

已经设置了很多的抗锯齿,但是在模拟器上看到截取得到的图片总是存在锯齿。

我属于新手,已经想尽办法,但是都不起作用。。。那个朋友可以帮下我,感激不尽。。。。。。
...全文
332 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwl1127266710 2014-11-21
  • 打赏
  • 举报
回复
楼上正解,之前像素太小了
FCARM 2013-01-10
  • 打赏
  • 举报
回复
锯齿一般是你割的时候像素不够

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧