Android 在画布中创建图层



我想学习如何在我的安卓应用程序中创建图层(如在 photoshop 中(。我想实现一个基本的事情:当我在画布中添加图像时,例如一些图形,我希望能够绘制画布,但绘画不能影响图形的线条。然后我需要将该图像保存在我的 Sd 卡上。

有什么建议/

建议/例子吗?我可以使用什么来实现此目的?

绘制图层的顺序。创建一些您绘制的对象堆栈,然后修改单个对象(在图层中绘制(或在此堆栈中移动它们(更改图层(。使用相同的顺序创建要保存的图像。

画布中的图层。

    Bitmap bitmap=Bitmap.createBitmap(500,500, Bitmap.Config.ARGB_8888);
    Canvas canvas=new Canvas(bitmap);
    Paint paint_outer=new Paint();
    paint_outer.setColor(Color.parseColor("#DEB887"));
    paint_outer.setStrokeWidth(140);
    paint_outer.setStyle(Paint.Style.STROKE);
    canvas.drawCircle(250,250,150,paint_outer);
    Paint paint_inner=new Paint();
    ComposePathEffect pathEffect=new ComposePathEffect(new CornerPathEffect(40),new DiscretePathEffect(60f,25f));
    paint_inner.setPathEffect(pathEffect);
    paint_inner.setColor(Color.parseColor("#8B4513"));
    paint_inner.setStrokeWidth(90);
    paint_inner.setStyle(Paint.Style.STROKE);
    canvas.drawCircle(250,250,150,paint_inner);
    iv.setImageBitmap(bitmap);

看看可以应用于Paint的各种XfermodePorterDuff.Mode提供了一些选项,就像您在Photoshop中获得的那样,例如屏幕和乘法,变亮和变暗。 但是,AvoidXferMode可能更适合您的需求。

您可以在 FrameLayout 中合成图层。您可能需要一些技巧来确保触摸事件传递到正确的层。

一旦你让android按照你喜欢的方式组合你的视图,你可以mFrameLayout.onDraw(Canvas c(将整个东西绘制到画布上。

本文提供了有关如何将视图组转换为 jpeg 的一些信息画布上的图像到 JPEG 文件

最新更新