【问题标题】:Zoom a bitmap with drawBitmap and rectangles - Android使用 drawBitmap 和矩形缩放位图 - Android
【发布时间】:2011-09-19 08:21:19
【问题描述】:

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

我将所有图像存储在图像数组中,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);
}

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

【问题讨论】:

  • 我用同样的例子来缩放画布上的图像,但什么都没有......你解决了吗?如果是,请告诉我路。

标签: android image bitmap zooming


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2022-10-02
    • 2013-12-31
    相关资源
    最近更新 更多