首页 > 代码库 > android项目 之 记事本(10) ----- 手写功能之设置画笔大小和画笔颜色

android项目 之 记事本(10) ----- 手写功能之设置画笔大小和画笔颜色

      上一节,实现了画板的所有功能,包括设置画笔大小,设置画笔颜色,橡皮擦等功能,而手写,也可以添加设置笔迹大小和颜色的功能,这节就顺势实现手写的调整笔迹大小和调整笔迹的颜色。

     先看图:

     其实,手写和画板的这些功能都类似,直接复用之前的代码就行,原理如下:

     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() {				@Override				public void onClick(DialogInterface dialog, int which) {					select_handwrite_size_index = which;					touchView.selectHandWritetSize(which);					dialog.dismiss();				}			});						alertDialogBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {								@Override				public 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() {				@Override				public void onClick(DialogInterface dialog, int which) {					select_handwrite_color_index = which;					touchView.selectHandWriteColor(which);					dialog.dismiss();				}			});						alertDialogBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {								@Override				public 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) ----- 手写功能之设置画笔大小和画笔颜色