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

An工具介绍之钢笔工具、铅笔工具与画笔工具 阅读详情

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

     先看图:

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

     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>

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

 



     



 

 

 

 

 

用paint画笔给TextView设置背景颜色和宽高 立即下载

相关推荐

计算机视觉——多视图几何

多视图几何1.前言1.1 多视图几何概念2. 基本原理2.1 对极几何2.2 基础矩阵2.2.1 基础矩阵推导2.2.2 求解基础矩阵3. 实验过程3.1 实验数据准备3.2 实验代码3.3 实验结果及分析4. 实验中遇到的问题 1.前言 1.1 多视图几何概念 多视图几何是利用在不同视点所拍摄图像间的关系,来研究照相机之间或者特征之间关系的一门科学。 多视图几何(Multiple View ...

RuiMa的博客 7715

Android屏幕手写签名的实现-详细篇

老规矩先看一下效果图 【实现思路】

Xia_燚的博客 1万+

Linux系统下Materials Studio 2020安装避坑指南:从依赖包到许可证配置全流程

本文提供了一份在Linux系统上安装Materials Studio 2020的深度避坑指南。详细解析了从系统依赖包检查、安装流程、许可证配置到Gateway服务部署的全过程,并分享了与Slurm作业调度系统集成的实战经验,旨在帮助用户高效、稳定地完成部署。

weixin_29313547的博客 387

Android Studio安卓开备忘录大作业

Android Studio安卓开备忘录大作业

xqmids99的博客 1198

计算机组成原理汉字编码与校验设计实验报告(汉字国标码转区位码实验、汉字机内码获取实验、海明编码电路设计与海明解码)

这次实验利用logisim进行设计,进行了以下这四个实验,其中分为汉字国标码转区位码实验、汉字机内码获取实验、海明编码电路设计与海明解码,实验报告分为四个部分,在这四个部分中依次对四个实验的方案设计,设计思路进行了介绍

zhang2gongzi的博客 6万+

2021年全国职业院校技能大赛高职组网络系统管理赛项

S1 Ruijie(config)#switch virtual domain 1 Ruijie(config-vs-domain)#switch 1 Ruijie(config-vs-domain)#switch 1 priority 150 Ruijie(config-vs-domain)#switch 1 description S1 Ruijie(config-vs-domain)#exit Ruijie(config)#vsl-port Ruijie(config-vsl-port)#po

bfq05234214的博客 1133

一起Talk Android吧(第四百零四回:画笔常用参数设置)

本章回中主要介绍画笔中的常用属性,以及修改方法,并且通过代码演示如何去修改画笔的属性。

talk_8的专栏 471

数据库常见面试题(附答案)

1.事务四大特性 原子性,要么执行,要么不执行 隔离性,所有操作全部执行完以前,其它会话不能看到过程 一致性,事务前后,数据总额一致 持久性,一旦事务提交,对数据的改变就是永久的 2.数据库隔离级别,每个级别会引发什么问题,mysql默认是哪个级别 脏读:事务B读取事务A还没有提交的数据 不可重复读:两次事务读的数据不一致 幻读:事务A修改了数据,事务B也修改了数据,这时在事务A看...

csdn问鼎 46万+

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

上一节,实现了画板的所有功能,包括设置画笔大小,设置画笔颜色,橡皮擦等功能,而手写,也可以添加设置笔迹大小和颜色的功能,这节就顺势实现手写的调整笔迹大小和调整笔迹的颜色。先看图:其实,手写和画板的这些功能都类似,直接复用之前的代码就行,原理如下:1. 设置画笔大小的功能:1)初始化画笔。2)设置画笔的大小为所选择的大小。3)用一个变量记住当前画笔的大小,用于在进行其他操作后还保持之前设置的画笔大小...

weixin_31699893的博客 668

低功耗设计:如何计算power switch的数量?

power switch加多了漏电高,加少了ir drop会有问题,具体加多少合适要如何计算呢?这里可以给一个参考方式。 第一步,先选switch cell的类型 通常选用HVT类型的switch cell,优点是漏电更低,缺点也很明显,电阻大,压降也大,switch cell的大小选择,可以选择(开启电阻x面积)最小的switch cell,即单位面积提供最小并联电阻的cell类型。 第二步,计算数量 选好类型,确定了开启电阻,可以按照如下公式计算数量: Ron/Xnum • W/V = V•P

m0_61544122的博客 3577

【深度学习新浪潮】气候预测模型的研发进展一览(2025年版)

模型类型核心优势适用场景不足ARIMA(统计模型)简单高效、可解释性强短期单变量预测非线性、长时依赖建模差随机森林(机器学习)多特征融合、抗噪声中短期多因素预测空间相关性、时序趋势捕捉弱LSTM(深度学习)长时依赖建模、端到端中长期时序预测物理一致性差、数据需求量大物理知情AI物理规律约束、高可靠性极端天气、长期气候变化模型复杂、计算成本高。

专注:太空算力、AI infra、异构调度、大模型成本工程 529

android项目 之 记事本(9) ----- 画板功能之橡皮擦、画笔大小和画笔颜色

android实现画板中的橡皮擦,设置画笔大小,设置画笔颜色的功能,并设置画笔的图标随着路径一起动,完善了记事本中的画板的所有功能。

jesson20121020的专栏 5554

【Zephyr驱动专题】01_深扒MPU6050陀螺仪寄存器

MPU6050作为最常用的6轴运动跟踪器件,其寄存器配置直接影响传感器性能和功能实现。本文将深入解析关键寄存器,并使用逻辑分析仪抓取信号进行分析。

zero的博客 1573

android项目 之 记事本(15) ----- 保存手写及绘图

将手写和绘图以图片的形式保存到指定目录下,并以时间作为文件名。

jesson20121020的专栏 5908

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android画笔大小,android之画板功能之橡皮擦 画笔大小和画笔颜色

第一展示设置画笔颜色的功能,第二展示设置画笔大小的颜色,而第三则展示橡皮擦的功能,这节将图标颜色设置为了蓝色,并且,增加了最左边的按钮(其实,就是在gridview中多增加了一个item)。下面分别讨论,橡皮擦,设置画笔大小,设置画笔颜色的主要思想:1. 橡皮擦功能:基本原理:橡皮擦就是用和画布颜色一致颜色的画笔在屏幕触摸,简接实现橡皮擦的功能。1)初始化画笔,并且设置画笔的颜色为白色(这里其实要...

weixin_42297390的博客 607

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android项目 之 记事本(6)----- 添加手写

实现类似手机QQ白板中手写功能,而且是全屏手写,实时刷新

jesson20121020的专栏 4279

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(二)

该项目的代码已经重构,采用了新框架,强烈建议查看《Android全新图片涂鸦框架Doodle——多功能、可自定义、可扩展》 (旧代码暂时不维护了,所以推荐还是使用最新框架吧!也希望大伙支持!!!) 点击移步到最新涂鸦框架&gt;&gt;&gt;Doodle 点击移步到最新涂鸦框架&gt;&gt;&gt;Doodle 点击移步到最新涂鸦框架&gt;&gt;&gt;Doodle​​​​​​​​...

走向远方 1万+

Android TextView设置部分文字的颜色字体和大小

目录 一,通过Html实现 1,例如实现如下效果 2,为一段文字中某些字单独设置字体大小 3,设置字体 二,通过Span 相关知识 前言 有时候一个TextView显示很多文字,所有文字颜色,字体,大小不统一;这个时候就需要单独设置某些字; 一,通过Html实现 1,例如实现如下效果 1.1,为一段文字中某些字单独设置一种颜色 通过Htm...

ezconn的博客 1万+

android studio app字体大小设置,Android Studio App设置TextView文字内容大小颜色

设置TextView文字内容大小颜色1.第一种方法在activity_main.xml李设置,Java文件不用改:android:text="这里是文字"android:textSize="字体大小"android:textColor="颜色代码"整个xml内容如下:xmlns:tools="http://schemas.android.com/tools" android:layout_widt...

weixin_30219823的博客 7049

Android 设置TabLayout选中后的字体、大小、颜色等设置

对TabLayout选中和为选中状态下,文字样式设置

mojo001的博客 1万+

android 记事本demo_android开发中如何实现手写输入的记事本

展开全部实现手写功能的主要步骤:1. 自定义两个View,一个是TouchView,用于在上面画图,另一个是EditText,用于将手写的字显32313133353236313431303231363533e4b893e5b19e31333337613236示在其中,并且,要将两个自定义View通过FrameLayout帧式布局重叠在起,以实现全屏手写的功能。2 在TouchView中实现写字,并...

weixin_39612220的博客 765

android之画板功能之橡皮擦 画笔大小和画笔颜色

第一展示设置画笔颜色的功能,第二展示设置画笔大小的颜色,而第三则展示橡皮擦的功能,这节将图标颜色设置为了蓝色,并且,增加了最左边的按钮(其实,就是在gridview中多增加了一个item)。 下面分别讨论,橡皮擦,设置画笔大小,设置画笔颜色的主要思想: 1. 橡皮擦功能: 基本原理:橡皮擦就是用和画布颜色一致颜色的画笔在屏幕触摸,简接实现橡皮擦的功能。 1)初始化画笔,并且设置画笔的颜色为...

weixin_34294649的博客 754

Android开发:一个TextView中设置文字不同字体大小和颜色的2种高效方法

在做项目的时候,经常会遇到过一行文字有两种颜色。有时候直接会想到用多个TextView来实现。今天就介绍一下更为简单的方法,用一个TextView实现。 效果: 先看一下xml代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android...

小五博客园 4万+

android 设置画笔大小,新增功能线和形状工具调整画笔大小更改视图移动旋转或缩放选定.PDF...

新增功能线和形状工具调整画笔大小更改视图移动旋转或缩放选定V6.2新增功能线和形状工具调整画笔大小更改视图移动、旋转或缩放选定区域如何使用图层?工具摘要选择工具热键调整图像大小创建自定义画笔ContentsCopyrights and Trademarks 4 颜色 16颜色编辑器 (Mac) 16新增功能 5 ...

weixin_39956350的博客 358

android textview 字体颜色设置,Android textview 设置不同的字体大小和颜色

在实际应用中,需要将一个字符串已不同的颜色,字体显示出来。当然完全可以通过不同textview拼接出来。也可以通过一个textview来展示。步骤如下:1.定义不同style .不妨如下定义2个style19dip@color/color123dip@color/color2italic2 . 通过SpannableString 设置字符串格式。代码如下:mTextView = (TextView...

weixin_39934302的博客 2241
上一篇: android项目 之 记事本(9) ----- 画板功能之橡皮擦、画笔大小和画笔颜色
下一篇: 数据结构(C实现)------- 顺序队列(非循环队列)
jesson20121020
博客等级 码龄15年 361粉丝 99原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值