在Android中使用ImageView绘制图层

时间:2011-09-08 09:29:18

标签: android drawing layer undo redo

任何人都可以指导我如何在ImageView组件上显示的Image上放置不同的绘图层。 基本上我想在我的绘图应用程序中实现撤消和重做功能。

目前我可以将文字或绘图放在图像上,但无法实现撤消/重做功能。我想知道通过维护一些分层内容可以做到这一点。

Plz帮助我。

这是我目前的绘图代码..

    try {

        image.buildDrawingCache();
        Bitmap bitmap = image.getDrawingCache();

        try

        {

            bitmap = getResizedBitmap(bitmap, image.getHeight(),
                    image.getWidth());

        } catch (OutOfMemoryError e) {
            Toast.makeText(getApplicationContext(), e.getMessage(), 1)
                    .show();
        }

        TextPaint tp = new TextPaint();
        tp.setColor(Color.GREEN);
        tp.setAntiAlias(true);
        tp.setTextSize(30);

        Canvas canvas = new Canvas(bitmap);
        canvas.drawText(input.getText().toString(), xPos, yPos, tp);
        image.setImageBitmap(bitmap);

        input.setText("");
        input.setVisibility(View.INVISIBLE);

    } catch (Exception e) {

        Toast.makeText(getApplicationContext(), e.getMessage(), 1).show();
    }

提前谢谢...... !!!

2 个答案:

答案 0 :(得分:2)

以另一种方式完成它。 创建orignal位图并将其保存在某个位图变量中。现在,每次onDraw调用都会启动一个带有orignal的位图并将其传递给画布。然后做你想做的事。

答案 1 :(得分:0)