android项目 之 记事本(10) ----- 手写功能之设置画笔大小和画笔颜色
来源:互联网 发布:宜家书桌推荐 知乎 编辑:程序博客网 时间:2024/06/11 14:54
上一节,实现了画板的所有功能,包括设置画笔大小,设置画笔颜色,橡皮擦等功能,而手写,也可以添加设置笔迹大小和颜色的功能,这节就顺势实现手写的调整笔迹大小和调整笔迹的颜色。
先看图:
其实,手写和画板的这些功能都类似,直接复用之前的代码就行,原理如下:
1. 设置画笔大小的功能:
1)初始化画笔。
2)设置画笔的大小为所选择的大小。
3)用一个变量记住当前画笔的大小,用于在进行其他操作后还保持之前设置的画笔大小。
2. 设置画笔颜色的功能:
1)初始化画笔。
2)设置画笔的颜色为所选择的颜色。
3)用一个变量记住当前画笔的颜色,用于在进行其他操作后还保持之前设置的画笔颜色。
主要代码(在TouchView中添加)如下:
private Paint mPaint;private int currentColor = Color.RED;private int currentSize = 5;
//设置画笔样式 public void setPaintStyle(){ mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setDither(true); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeJoin(Paint.Join.ROUND); mPaint.setStrokeCap(Paint.Cap.ROUND); mPaint.setStrokeWidth(currentSize); mPaint.setColor(currentColor); }
设置画笔大小:
//设置画笔的大小 public void selectHandWritetSize(int which){int size =Integer.parseInt(this.getResources().getStringArray(R.array.paintsize)[which]); currentSize = size; setPaintStyle();}
设置画笔颜色:
//设置画笔颜色 public void selectHandWriteColor(int which){ currentColor = paintColor[which]; setPaintStyle(); }
在自定义View中添加这些方法后,接下来就是在Activity中调用这些方法了,同上节(在HandWriteActivity.java中添加如下代码):
//画笔大小 case 0: showPaintSizeDialog(view); break; //颜色 case 1: showPaintColorDialog(view); break;
通过点击这两个按钮,弹出对话框,用于选择画笔的大小和颜色
showPaintSizeDialog(view),弹出选择画笔大小的对话框,如下:
//弹出画笔大小选项对话框 public void showPaintSizeDialog(View parent){ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this,R.style.custom_dialog);alertDialogBuilder.setTitle("选择画笔大小:");alertDialogBuilder.setSingleChoiceItems(R.array.paintsize, select_handwrite_size_index, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {select_handwrite_size_index = which;touchView.selectHandWritetSize(which);dialog.dismiss();}});alertDialogBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});alertDialogBuilder.create().show(); }
showPaintColorDialog(view):弹出颜色选择对话框,如下:
//弹出画笔颜色选项对话框 public void showPaintColorDialog(View parent){ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this,R.style.custom_dialog);alertDialogBuilder.setTitle("选择画笔颜色:");alertDialogBuilder.setSingleChoiceItems(R.array.paintcolor, select_handwrite_color_index, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {select_handwrite_color_index = which;touchView.selectHandWriteColor(which);dialog.dismiss();}});alertDialogBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});alertDialogBuilder.create().show(); }
里面同样也用到了上节提到的arrays.xml
arrays.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="paintstyle"> <item>@string/track_line</item> <item>@string/Eraser</item> </string-array> <string-array name="paintsize"> <item>5</item> <item>10</item> <item>15</item> <item>20</item> <item>25</item> <item>30</item> </string-array> <string-array name="paintcolor"> <item>RED</item> <item>BLUE</item> <item>BLACK</item> <item>GREEN</item> <item>YELLOW</item> <item>CYAN</item> <item>LTGRAY</item> </string-array> </resources>
至此,手写的功能,也已基本全部完成,接下来就剩将手写的字保存成文件,并返回保存文件的路径存储到数据库,后续继续完善。
- android项目 之 记事本(10) ----- 手写功能之设置画笔大小和画笔颜色
- android项目 之 记事本(9) ----- 画板功能之橡皮擦、画笔大小和画笔颜色
- 【android开发】手写签名系统的设计与实现之实现画笔设置(四)
- 【android开发】手写签名系统的设计与实现之实现画笔设置(四)
- [Android实例] 手写签名,画笔颜色选择器
- android项目 之 记事本(7)----- 手写功能之删除、恢复和清空
- Android开发之画笔
- MFC之改变画笔颜色
- Android 画笔功能
- Android 设置半透明画笔
- android项目 之 记事本(6)----- 添加手写
- android项目 之 记事本(15) ----- 保存手写及绘图
- android图形系统之Paint(画笔)类详解
- Android 游戏开发之paint画笔
- Android自定义View之画笔与画布
- Android自定义View之画笔与画布
- Android图像处理之画笔特效处理
- Android自定义View之画笔与画布
- OpenCV基础篇之绘图及RNG随机数对象
- mongoDb固定集合与性能优化
- OpenCV基础篇之像素访问
- 链表常用操作(笔试面试经常遇到)
- 高效使用搜索引擎
- android项目 之 记事本(10) ----- 手写功能之设置画笔大小和画笔颜色
- 使用Pspice进行电路仿真
- 脉脉电脑版 v3.0.3 官方版
- python下递归遍历目录和文件
- OpenCV基础篇之图片叠加
- 循环的角度求均值
- OpenCV基础篇之使用CMake管理工程
- make menuconfig/.config/Kconfig解析
- 黑马程序员--java中的synchronized