gpt4 book ai didi

android - 使用 drawBitmap 和矩形缩放位图 - Android

转载 作者:行者123 更新时间:2023-11-29 14:06:50 25 4
gpt4 key购买 nike

我正在开发一个小型图像编辑器。基本上,用户可以在 Canvas 中插入一些图像,并通过与手指的交互来移动它们。我在缩放时遇到了一些问题。我遵循了这个 tutorial 的想法使用位图,并将变换应用于两个矩形。之后,如果我们使用 android.graphics.Canvas.drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) 在 Canvas 上绘制位图,则会应用转换。到目前为止,对我不起作用。

我将所有图像存储在一个图像数组 ColorBall 中。当我检测到有一个缩放手势时,并且只有当它在某个图像上时(到目前为止这有效),我对该图像应用转换(值是虚拟的,只是想检查它是否有效):

colorballs.get(balID-1).getmRectDst().left   = getLeft();
colorballs.get(balID-1).getmRectDst().top = getTop();
colorballs.get(balID-1).getmRectDst().right = getRight();
colorballs.get(balID-1).getmRectDst().bottom = getBottom();

colorballs.get(balID-1).getmRectSrc().left += 10;
colorballs.get(balID-1).getmRectSrc().top += 10;
colorballs.get(balID-1).getmRectSrc().right += 10;
colorballs.get(balID-1).getmRectSrc().bottom += 10;

在 OnDraw 事件中,我为数组中的所有图片找到它们,然后使用矩形缩放它们。到目前为止,缩放部分不起作用:

//draw the balls on the canvas
for (ColorBall ball : colorballs) {
canvas.drawBitmap(ball.getBitmap(), ball.getX(), ball.getY(), null);
canvas.drawBitmap(ball.getBitmap(), ball.getmRectSrc(), ball.getmRectDst(), mPaintBalls);
}

关于我在这里可以遗漏什么的任何建议?提前致谢!

最佳答案

看起来您正在向底部/右侧添加内容,因此您实际上只是将背景源向右十位移动而不是缩放。

colorballs.get(balID-1).getmRectSrc().right  -= 10;
colorballs.get(balID-1).getmRectSrc().bottom -= 10;

关于android - 使用 drawBitmap 和矩形缩放位图 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6422759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com