我正在尝试使用矩阵翻译图像我的代码是
Bitmap myImg = BitmapFactory.decodeResource(getResources(), R.drawable.calednder_c);
Matrix matrix = new Matrix();
matrix.setTranslate(500,300 );
Bitmap rotated = Bitmap.createBitmap(myImg, 0, 0, myImg.getWidth(), myImg.getHeight(),
matrix, true);
circle.setImageBitmap(rotated);
当我调用我的动画方法时没有发生任何事情。虽然我写了preRotate(angle);
它旋转并且它也缩放但不能翻译为什么我缺少
提前致谢
答案 0 :(得分:1)
以下是createBitmap
源代码中的相应代码段:
final boolean transformed = !m.rectStaysRect();
RectF deviceR = new RectF();
m.mapRect(deviceR, dstR);
neww = Math.round(deviceR.width());
newh = Math.round(deviceR.height());
bitmap = createBitmap(neww, newh, transformed ? Config.ARGB_8888 : newConfig,
transformed || source.hasAlpha());
canvas.translate(-deviceR.left, -deviceR.top);
canvas.concat(m);
paint = new Paint();
paint.setFilterBitmap(filter);
if (transformed) {
paint.setAntiAlias(true);
}
它使创建的位图足够大,可以容纳原始位图中的所有所需像素。这是由新尺寸和canvas.translate
电话引起的。
净效应是忽略矩阵中的翻译。