使用Matrix Android进行翻译

时间:2013-01-04 12:32:29

标签: android android-layout random

我正在尝试使用矩阵翻译图像我的代码是

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);它旋转并且它也缩放但不能翻译为什么我缺少

提前致谢

1 个答案:

答案 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电话引起的。

净效应是忽略矩阵中的翻译。