作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用矩阵在 Canvas 上旋转位图,如下所示:
public void drawRotatedPixmap(Bitmap bitmap, int x, int y, int srcX, int srcY, int srcWidth, int srcHeight, int degrees)
{
srcRect.left = srcX;
srcRect.top = srcY;
srcRect.right = srcX + srcWidth;
srcRect.bottom = srcY + srcHeight;
dstRect.left = x;
dstRect.top = y;
dstRect.right = x + srcWidth;
dstRect.bottom = y + srcHeight;
matrix.reset();
matrix.setRotate(degrees, x+srcWidth/2, y+srcHeight/2);
canvas.setMatrix(matrix);
canvas.drawBitmap(bitmap, srcRect, dstRect, null);
canvas.setMatrix(null);
}
原始位图图像非常像素化,旋转它我得到这个:
通过这种方式,图像会重新缩放并且边缘非常明显。我得到的结果如下:
可以通过在 Canvas 上绘图来完成此操作还是应该使用 openGL?
注意: Sprite 图像仅用于测试,取自 google
最佳答案
要获得更高的质量,请使用经过过滤的涂料:
Paint filterPaint = new Paint();
filterPaint.setFilterBitmap(true);
canvas.drawBitmap(bitmap, srcRect, dstRect, filterPaint);
关于java - 如何在 Android 上旋转 Canvas 上的位图而不使其变形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22582904/
我是一名优秀的程序员,十分优秀!