-
设置画笔及形状
画笔可以选择手绘、仿制、橡皮擦、文字,其中仿制功能跟PS中的类似,复制图片中的某处地方。形状可以选择手绘、箭头、直线、圆、矩形等。画笔的底色可以选择颜色,或者选择一张画布。
-
撤销及清屏
可每一步的操作都可以撤销,清屏时将清除所有的操作。
-
放缩、移动及旋转
在涂鸦的过程中,可以自由地通过手势缩放和移动图片,同时在多次缩放后,可快速居中图片;支持旋转图片。
-
放大器
为了更细微地涂鸦,涂鸦过程中可以设置出现放大器.
/**
* 涂鸦界面,根据GraffitiView的接口,提供页面交互
*
*/
public class GraffitiActivity extends Activity {
/**
* 启动涂鸦界面
*
* @param activity
* @param params 涂鸦参数
* @param requestCode startActivityForResult的请求码
*/
public static void startActivityForResult(Activity activity, GraffitiParams params, int requestCode) {
Intent intent = new Intent(activity, GraffitiActivity.class);
intent.putExtra(GraffitiActivity.KEY_PARAMS, params);
activity.startActivityForResult(intent, requestCode);
}
}
/**
* 涂鸦参数
*/
public static class GraffitiParams implements Parcelable {
/**
* 图片路径
*/
public String mImagePath;
/**
* 保存路径,如果为null,则图片保存在根目录下/DCIM/Graffiti/
*/
public String mSavePath;
/**
* 保存路径是否为目录,如果为目录,则在该目录生成由时间戳组成的图片名称
*/
public boolean mSavePathIsDir;
/**
* 橡皮擦底图,如果为null,则底图为当前图片路径
*/
public String mEraserPath;
/**
* 橡皮擦底图是否调整大小,如果为true则调整到跟当前涂鸦图片一样的大小.
* 默认为true
*/
public boolean mEraserImageIsResizeable = true;
/**
* 触摸时,图片区域外是否绘制涂鸦轨迹
*/
public boolean mIsDrawableOutside;
/**
* 涂鸦时(手指按下)隐藏设置面板的延长时间(ms),当小于等于0时则为不尝试隐藏面板(即保持面板当前状态不变);当大于0时表示需要触摸屏幕超过一定时间后才隐藏
* 或者手指抬起时展示面板的延长时间(ms),或者表示需要离开屏幕超过一定时间后才展示
* 默认为800ms
*/
public long mChangePanelVisibilityDelay = 800; //ms
/**
* 设置放大镜的倍数,当小于等于0时表示不使用放大器功能
* 放大器只有在设置面板被隐藏的时候才会出现
* 默认为2.5倍
*/
public float mAmplifierScale = 2.5f;
/**
* 初始化的画笔大小
* 默认为30px
*/
public float mPaintSize = 30;
}
- 功能介绍:
android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(一)
- 原理介绍:
android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(二)
- 2017-03-16 v4.1(5)
(1)加入文字功能,支持输入文字并对文字进行编辑、旋转等.
- 2017-02-18 v4.0(4)
(1)加入旋转图片的功能,并且支持撤销旋转前的涂鸦操作.
- 2017-01-24 v3.0(3)
(1)合并图片坐标系和画布坐标系,简化原理. (2)更新原理介绍的文章.
- 2016-12-23 v2.0(2)
(1)增加放大器功能.
(2)新增接口:涂鸦时面板自动隐藏.
(3)修复:使用长图,缩放移动时不能自由移动.