一个涂鸦画板控件

本文介绍了一个用于在屏幕上签名并保存为图片的Android涂鸦画板控件DrawView。通过收集触控事件中的坐标点,将路径绘制在Canvas上。在MainActivity中简单使用,并提醒设置非透明背景以避免保存图片时出现黑色背景。提供了源码链接供参考。
摘要由CSDN通过智能技术生成

这次带来一个涂鸦画板控件。之前一个项目里需要做一个功能:用户在屏幕上签名,然后将签名保存成图片。于是就顺手写了这个

控件,起个名字叫DrawView,这里拿出来给大家分享一下。


首先说一下原理。原理其实很简单,我们在屏幕上画的一笔,本质上就是一堆坐标点的集合,把这个集合保存在Path中,然后调用

canvas.drawPath就可以把这条线画出来了。而触控产生的坐标点可以在onTouchEvent里采集。


上DrawView本体:

DrawView.java:

public class DrawView extends View {
    private Context context;

    // 线宽
    private int lineWidth;

    // 线颜色
    private int lineColor;

    private Paint paint;
    private ArrayList<Path> list;

    public DrawView(Context context) {
        this(context, null);
    }

    public DrawView(Context context, AttributeSet attrs) {
        this(context, attrs, -1);
    }

    public DrawView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context);
    }

    private void init(Context context) {
        this.context = context;

        if (paint == null) paint = new Paint();
        if (list == null) list = new ArrayList<>();

        lineWidth = lineWidth != 0 ? lineWidth : dp2px(5);
        lineColor = lineColor != 0 ? lineColor : Color.parseColor("#000000");

        paint.setStrokeWidth(lineWidth);
        paint.set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值