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

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

先看图:

ffe24a6d5f26107bc7320a7ca8ffea93.gif

f98823663fb1b417fda2a900d1f7ec67.gif

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

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

@string/track_line

@string/Eraser

5

10

15

20

25

30

RED

BLUE

BLACK

GREEN

YELLOW

CYAN

LTGRAY

至此,手写的功能,也已基本全部完成,接下来就剩将手写的字保存成文件,并返回保存文件的路径存储到数据库,后续继续完善。

原文:http://blog.youkuaiyun.com/jesson20121020/article/details/39449661

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值