WhiteBoard

by dsbGenius

dsbGenius / WhiteBoard

SketchBoard是一个可涂鸦、绘图、添加文字、图像(可旋转缩放)、背景的Fragment,其中主要由SketchView利用matrix完成所有图形绘制操作。 SketchBoard is a ...

481 Stars 140 Forks Last release: Not found 157 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

SketchBoard项目简介

SketchBoard是一个可涂鸦、绘图、添加文字、图像(可旋转缩放)、背景的Fragment,其中主要由SketchView利用matrix完成所有图形绘制操作。

tips:图像旋转缩放高仿美图APP的操作方式

tips: 感谢🙏绮怀先生对图片选取功能的代码贡献

欢迎加入WhiteBorad交流群,QQ群号码:657011470

更新日志

2017.6.13 把SketchView所有成员变量及方法都改为public,方便扩展

2017.6.9 修复画笔过多时绘制卡顿问题(只能撤销最近十笔画笔操作)

2017.4.19 修复橡皮擦功能

一、效果演示

1.1 画笔演示.gif

画笔演示.gif

1.2 图像操作演示.gif

图像操作演示.gif

1.3 画板切换演示.gif

画板切换演示.gif

二、使用说明

2.1 已上传Bintray,build.gradle加入即可:

compile 'com.yinghe:whiteboardlib:1.1.1'

2.2 在activity中直接使用:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //获取Fragment管理器
    FragmentTransaction ts = getSupportFragmentManager().beginTransaction();
    //获取WhiteBoardFragment实例
    WhiteBoardFragment  whiteBoardFragment = WhiteBoardFragment.newInstance();
    //添加到界面中
    ts.add(R.id.fl_main, whiteBoardFragment, "wb").commit();
}

2.3 WhiteBoardFragment的API说明:

     /**
     * show 默认新建一个学生端功能
     * @author TangentLu
     * create at 16/6/17 上午9:59
     */
    public static WhiteBoardFragment newInstance() {
    }

/**
 * show 新建一个教师端的画板碎片,有推送按钮
 * @param callback 推送按钮监听器,接受返回的图片文件路径可用于显示文件
 * @author TangentLu
 * create at 16/6/17 上午9:57
 */
public static WhiteBoardFragment newInstance(SendBtnCallback callback) {
}

/**
 * @param imgPath 添加的背景图片文件路径
 * @author TangentLu
 * create at 16/6/21 下午3:39
 * show 设置当前白板的背景图片
 */
public void setCurBackgroundByPath(String imgPath) {
}

/**
 * show  新增白板并设置白板的背景图片
 * @param imgPath 添加的背景图片文件路径
 * @author TangentLu
 * create at 16/6/21 下午3:39
 */
public void setNewBackgroundByPath(String imgPath) {
}

/**
 * show 新增图片到当前白板
 * @param imgPath 新增的图片路径
 * @author TangentLu
 * create at 16/6/21 下午3:42
 */
public void addPhotoByPath(String imgPath) {
}


/**
 * show 获取当前白板的BitMap
 * @author TangentLu
 * create at 16/6/21 下午3:44
 */
public Bitmap getResultBitmap() {
}

/**
 * show 手动保存当前画板到文件,耗时操作
 *
 * @param filePath 保存的文件路径
 * @param imgName  保存的文件名
 * @return 返回保存后的文件路径
 * @author TangentLu
 * create at 16/6/21 下午3:46
 */
public File saveInOI(String filePath, String imgName) {
}

三、技术博客

主要技术难点可参考以下技术博客:

Android画板(一):软键盘遮挡输入焦点的完美解决方案

Android画板(二):Matrix实现美图APP的旋转缩放

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.