Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 画布、缩放、位图消失_Android_Android Canvas - Fatal编程技术网

Android 画布、缩放、位图消失

Android 画布、缩放、位图消失,android,android-canvas,Android,Android Canvas,我试图用Canvas.scale(2f,2f)放大位图,但当我这样做时,图像消失了 这是我的密码: int srcLeft = GodFrameWidth * GodCurAnimation; int srcTop = 0; int srcRight = (GodFrameWidth * GodCurAnimation) + GodFrameWidth; int srcBottom = GodFrameHeight; float destLeft = C

我试图用Canvas.scale(2f,2f)放大位图,但当我这样做时,图像消失了

这是我的密码:

    int srcLeft = GodFrameWidth * GodCurAnimation;
    int srcTop = 0;
    int srcRight = (GodFrameWidth * GodCurAnimation) + GodFrameWidth;
    int srcBottom = GodFrameHeight;

    float destLeft = CanvasWidth/2 - GodFrameWidth;
    float destTop = CanvasHeight/2;
    float destRight = destLeft + GodFrameWidth;
    float destBottom = destTop + GodFrameHeight;

    RectF dst = new RectF(destLeft, destTop,destRight ,destBottom );
    Rect src = new Rect(srcLeft,srcTop,srcRight,srcBottom);
    canvas.save();
    canvas.scale(2f, 2f);
    canvas.drawBitmap(GodMap, src, dst,Pencil);
    canvas.restore();
如果我不缩放它,它就出现在屏幕中间,我希望它在屏幕上。


有什么想法吗?

我建议您在缩放画布之前将其转换为轴。例如:

canvas.save();
canvas.translate(50, 50);
canvas.scale(0.5f, 0.5f);
canvas.drawRect(0.0, 0.0, 5.0, 5.0, paint);
canvas.restore();
这将绘制一个长度为5.0、宽度为5.0的矩形,将其缩放到长度和宽度为2.5,然后将其移动到(50,50)