首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对canvas.translate()使用canvas.drawBitmap()

对canvas.translate()使用canvas.drawBitmap()
EN

Stack Overflow用户
提问于 2013-04-04 21:51:58
回答 1查看 299关注 0票数 0

我的代码在这里接收bmpXbmpY的值,并使用它们在屏幕上的该位置绘制位图。这完全如我所希望的那样工作,但我宁愿使用canvas.translate()函数来处理图像的移动,而不仅仅是canvas.drawBitmap(),因为我将向画布应用其他绘制元素,并且我希望它们都移动相同的量和方向。

我的问题是:我可以将代码中的canvas.drawBitmap()移动到哪里,以便它在开始时只绘制到画布上,但在此之后使用canvas.translate()随时移动它?无论我如何改变canvas.translate()的位置,我放置代码的任何地方仍然会在我绘制它的那个点冻结图像。我想象有可能将图像“粘贴”到画布上,可以这么说,然后移动画布,这也会移动图像。

代码语言:javascript
复制
public void run() {
        // TODO Auto-generated method stub
        while(isRunning) {
            if(!surfaceHolder.getSurface().isValid()) {
                continue;
            }

            canvas = surfaceHolder.lockCanvas();
            canvas.drawRGB(255, 255, 255);
            canvas.drawBitmap(bmp, bmpX-(bmp.getWidth()/2), 
                                     bmpY-(bmp.getHeight()/2), null);

            //canvas.translate(bmpX, bmpY);

            surfaceHolder.unlockCanvasAndPost(canvas);

        }
}

我希望我已经足够清楚地解释了我的问题。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-04-11 19:14:23

为了清楚起见,在回答我自己的问题后,我离线了。UI不能在这样的线程上完成,我需要使用android UI线程。runOnUIUpdatethread和异步任务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15813241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档