android bitmap 去锯齿,Bitmap拉伸后出现锯齿的几种解决办法
图片拉伸后出现严重锯齿的情况,总结了下,有如下几种方案1.给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。paint.setAntiAlias(true);canvas.drawBitmap(bmp ,fX,fY,paint);2.直接给canvas加抗锯齿。canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Pai
图片拉伸后出现严重锯齿的情况,总结了下,有如下几种方案
1.给Paint加上抗锯齿标志。然后将Paint对象作为参数传给canvas的绘制方法。
paint.setAntiAlias(true);
canvas.drawBitmap(bmp ,fX,fY,paint);
2.直接给canvas加抗锯齿。
canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
这两种方法 大多数情况下都能解决问题,但是部分情况下效果不太理想。除此之外还可以尝试下面两种方法:
3. 创建bitmap时就做拉伸处理:
Bitmap bmp = Bitmap.createScaledBitmap(bmpSrc, (int) (bmpSrc.getWidth() * scale), (int) (bmpSrc.getHeight() * scale), true);
注意这个 方法的最后一个参数一定要设为true,否则无法去锯齿
4 .在绘制图像时利用matrix对图像进行拉伸。
Matrix matrix = new Matrix();
matrix.setTranslate(fX,fY);
matrix.postScale(scale,scale,fX,fY);
canvas.drawBitmap(bmp,matrix,null);
更多推荐
所有评论(0)