如何在 Android 中将画布背景更改为图像?

发布于 2024-12-05 01:09:08 字数 961 浏览 0 评论 0原文

我有下面的代码可以保存用户的绘图。它是我的绘画应用程序的一部分。现在,画布的背景颜色是白色,我希望它是一个图像。

例如,我有一张房子的图像,我想在它上面画一些东西。

@Override
public void run() {
    Canvas canvas = null;
    while (_run){
        if(isDrawing == true){
            try{
                canvas = mSurfaceHolder.lockCanvas(null);
                if(mBitmap == null){
                    mBitmap =  Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);
                }
                final Canvas c = new Canvas (mBitmap);

                c.drawColor(0, PorterDuff.Mode.CLEAR);
                canvas.drawColor(0, PorterDuff.Mode.CLEAR);
                canvas.drawColor(0xffffffff);

                commandManager.executeAll(c,previewDoneHandler);
                previewPath.draw(c);

                canvas.drawBitmap (mBitmap, 0,  0,null);
            } finally {
                mSurfaceHolder.unlockCanvasAndPost(canvas);
            }


        }

    }

}

非常感谢您的帮助! :)

I have the code below that saves a user's drawing. It's a part of my paint app. Now, the canvas' background color is white and I want it to be an image.

For example I have an image of a house and I want to draw something on top of it.

@Override
public void run() {
    Canvas canvas = null;
    while (_run){
        if(isDrawing == true){
            try{
                canvas = mSurfaceHolder.lockCanvas(null);
                if(mBitmap == null){
                    mBitmap =  Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);
                }
                final Canvas c = new Canvas (mBitmap);

                c.drawColor(0, PorterDuff.Mode.CLEAR);
                canvas.drawColor(0, PorterDuff.Mode.CLEAR);
                canvas.drawColor(0xffffffff);

                commandManager.executeAll(c,previewDoneHandler);
                previewPath.draw(c);

                canvas.drawBitmap (mBitmap, 0,  0,null);
            } finally {
                mSurfaceHolder.unlockCanvasAndPost(canvas);
            }


        }

    }

}

Thanks a lot for any help! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

临风闻羌笛 2024-12-12 01:09:08

要更改画布的背景,请在 mainActivity.javaonCreate() 中键入此行。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    drawView.setBackground(getResources().getDrawable(R.drawable.background));
}

此外,您可以尝试在 onDraw() 中执行此操作,但性能会降低大大减少

canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.bg1),0,0,null)

To change the background of the canvas, type this line in onCreate() of your mainActivity.java

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    drawView.setBackground(getResources().getDrawable(R.drawable.background));
}

Also, you can try doing this in your onDraw() however the performance will greatly reduce

canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.bg1),0,0,null)
药祭#氼 2024-12-12 01:09:08

我认为您正在寻找这个:

画布上的可绘制图像

I think your looking for this:

Drawable image on a canvas

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文