- 浏览: 551357 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
toyota2006:
thank you!
适配器(Adapter)模式 -
910014107:
收藏一下
JIRA安装和破解 -
wangchaobashen:
注册完是一年期的License,请问这个期限该如何修改呢?
JIRA安装和破解 -
ihqn19:
总而言之,就是不知道你想表达什么就对了。
JS 面向对象的简单应用实例 -
jxls162408:
第四步更新tomcat libraris ,找不到那个包呀。怎 ...
JIRA安装和破解
Painting.h
Painting.m
#import <UIKit/UIKit.h> //CONSTANTS: #define kRubberWidth 20 #define kBrushLineAlpha 1.0 #define kPaintViewBackGroudImg @"背景.png" @interface Painting : UIView { UIImageView *drawImage; int mouseMoved; BOOL mouseSwiped; BOOL isRubber; CGPoint lastPoint; CGFloat kBrushRGBColorRed; CGFloat kBrushRGBColorGreen; CGFloat kBrushRGBColorBlue; CGFloat kBrushLineWidth; } @property(nonatomic, readwrite) BOOL isRubber; @property(nonatomic, readwrite) CGFloat kBrushLineWidth; - (void)clear; - (void)save; //- (void)changRGBColorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue; - (void)setBrushColorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue; @end
Painting.m
#import "Painting.h" #import <QuartzCore/QuartzCore.h> @implementation Painting @synthesize isRubber; @synthesize kBrushLineWidth; - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { } return self; } - (void)drawRect:(CGRect)rect { drawImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:kPaintViewBackGroudImg]]; drawImage.frame = self.frame; [self addSubview:backGroudImage]; [self addSubview:drawImage]; mouseMoved = 0; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = NO; UITouch *touch = [touches anyObject]; //双击清空 //if ([touch tapCount] == 2) { // [self clear]; //} lastPoint = [touch locationInView:self]; //lastPoint.y -= 20; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { mouseSwiped = YES; UITouch *touch = [touches anyObject]; CGPoint currentPoint = [touch locationInView:self]; //currentPoint.y -= 20; // only for 'kCGLineCapRound' UIGraphicsBeginImageContext(self.frame.size); //Albert Renshaw - Apps4Life [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)]; //originally self.frame.size.width, self.frame.size.height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); //kCGLineCapSquare, kCGLineCapButt, kCGLineCapRound CGContextSetLineWidth(UIGraphicsGetCurrentContext(), kBrushLineWidth); // for size 线条宽度 CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), kBrushRGBColorRed, kBrushRGBColorGreen, kBrushRGBColorBlue, kBrushLineAlpha); //values for R, G, B, and Alpha //CGContextSetLineJoin(UIGraphicsGetCurrentContext() , kCGLineJoinRound ); if (isRubber) { CGContextSetLineWidth(UIGraphicsGetCurrentContext(), kRubberWidth); // for size 线条宽度 CGContextSetBlendMode(UIGraphicsGetCurrentContext(),kCGBlendModeClear);//混合模式 // CGContextClearRect(UIGraphicsGetCurrentContext(),CGRectMake(currentPoint.x - kRubberWidth/2, currentPoint.y - kRubberWidth/2,kRubberWidth,kRubberWidth)); } // else { // CGContextBeginPath(UIGraphicsGetCurrentContext()); // CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); // CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); // } CGContextBeginPath(UIGraphicsGetCurrentContext()); CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); CGContextStrokePath(UIGraphicsGetCurrentContext()); drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); lastPoint = currentPoint; mouseMoved++; if (mouseMoved == 10) { mouseMoved = 0; } } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { //UITouch *touch = [touches anyObject]; //双击清空 //if ([touch tapCount] == 2) { // [self clear]; //} if(!mouseSwiped) { UIGraphicsBeginImageContext(self.frame.size); [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)]; //originally self.frame.size.width, self.frame.size.height)]; CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); //kCGLineCapSquare, kCGLineCapButt, kCGLineCapRound CGContextSetLineWidth(UIGraphicsGetCurrentContext(), kBrushLineWidth); CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), kBrushRGBColorRed, kBrushRGBColorGreen, kBrushRGBColorBlue, kBrushLineAlpha); //CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); if (isRubber) { CGContextClearRect(UIGraphicsGetCurrentContext(),CGRectMake(lastPoint.x - kRubberWidth/2, lastPoint.y - kRubberWidth/2,kRubberWidth,kRubberWidth)); }else { CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); } CGContextStrokePath(UIGraphicsGetCurrentContext()); CGContextFlush(UIGraphicsGetCurrentContext()); drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } } - (void) clear{ [drawImage setImage:[UIImage imageNamed:kPaintViewBackGroudImg]]; } - (void)save{ UIGraphicsBeginImageContext(self.bounds.size); [self.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); //UIImage *viewImage = [UIImage imageNamed:@"pink2.png"]; UIGraphicsEndImageContext(); if (viewImage != nil) { UIImageWriteToSavedPhotosAlbum(viewImage, self, nil, nil); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"保存完毕" message:@"保存到图片浏览目录中" delegate:nil cancelButtonTitle:@"关闭" otherButtonTitles:nil]; [alert show]; [alert release]; } } - (void)setBrushColorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue { kBrushRGBColorRed = red; kBrushRGBColorGreen = green; kBrushRGBColorBlue = blue; } - (void)dealloc { [super dealloc]; } @end
- Painting.zip (2.2 KB)
- 下载次数: 29
发表评论
-
UIImage应用与内存管理
2011-03-24 10:44 4066用UIImage加载图像的方法很多,最常用的是下面两种: ... -
NSMutableArray与NSArray的区别
2011-03-21 16:05 24801: NSMutableArray能添加、插入、删除对象,而 ... -
iPhone/iPad 开发: 可编辑的TableView
2011-01-21 15:33 6271可编辑的TableView 在编写简单的导航控制器基础上,让T ... -
iPhone/iPad 开发:录音及声音播放
2011-01-21 15:30 4710-(IBAction) recordOrStop: (id) ... -
iphone/ipad开发:编写声控红旗飘飘
2011-01-21 15:24 1497见附件Flag.zip -
TableView 的使用 实例二
2010-12-14 16:06 20735在实例一我们做了一个最基本的导航列表(其实还没有导航功能,只不 ... -
TableView 的使用 实例一
2010-12-14 13:45 10442TableView 是iphone/ipad中常常会用到的导航 ... -
iPhone/iPad 开发: 解析本地/网络上的xml文件(实例建附件)
2010-11-16 11:46 49461、解析本地xml文件 //找到本地test.xml文件 ... -
iPhone/iPad 开发: Objective-C 接分字符串成数组(类似java 的 split)
2010-11-11 14:46 6787在很多语言如 java , ruby , python中都有将 ... -
iPhone/iPad SQLite3 简明 使用 实例
2010-11-02 11:54 6839简单sqlite使用 sqlite是嵌入式的和轻量级的sql数 ... -
iPhone/iPad Timer 使用
2010-10-22 16:54 1873//以下代码为每隔1.5秒执行一次autoPlay函数 [ ... -
视图翻转问题
2010-10-22 16:47 1611//实现shouldAutorotateToInterface ... -
解决子view被ViewController遮挡的问题
2010-10-22 16:42 2146ViewController在加载子View的时候会出现子Vi ... -
iPhone/iPad 动画效果切换画面
2010-10-22 11:48 3387iPhone/iPad 动画效果切换画面 -(void)s ... -
内存管理总结
2010-10-22 11:40 1238iPhone系统中的Objective-C的内存管理机制是 ... -
iPhone/iPad 读写 Plist文件
2010-10-22 11:36 4862iPhone/iPad 读写 Plist文件 1.写Pli ... -
iPhone开发经典语录集锦
2010-10-22 11:21 1161引用1:如果无法保证子类行为的一致性,那么就用委托 If t ... -
深入理解iPhone委托模式兼谈iPhone生命周期
2010-10-22 11:10 2612深入理解iPhone委托模式兼谈iPhone生命周期 本文转载 ... -
得到application对象
2010-10-22 10:56 997application=[UIApplication shar ... -
iPhone/iPad程序 点击 休眠键委托事件 和 唤醒后的响应事件
2010-10-13 17:03 2020//休眠后委托事件 - (void)application ...
相关推荐
《几何画板使用手册》是一本详尽指导用户掌握几何画板操作的教程。几何画板是一款强大的数学绘图工具,被广泛应用于教学、研究以及个人学习中。它以其直观的图形操作和动态演示功能,使得复杂的几何概念变得易于理解...
根据所提供的文件内容,以下是详细的3D几何画板使用教程的知识点: 1. 几何画板软件及自定义工具介绍 几何画板是一个能够解决平面几何和解析几何问题的数学平台。然而,它在处理立体几何问题时会显得力不从心。为了...
《3D几何画板使用教程》是一篇详细指导如何运用3D几何画板进行立体几何学习和教学的文章。3D几何画板是一个专门用于解决平面和立体几何问题的数学工具,尤其适合处理高中立体几何的教学需求。这个工具的独特之处在于...
"易语言源码画板使用"的标题和描述表明,这个压缩包包含的是使用易语言编写的画板应用程序的源代码。通过学习和分析这些源码,我们可以深入了解易语言在图形用户界面(GUI)开发中的应用,特别是如何创建和控制画板...
"易语言源码画板使用.7z" 是一个压缩包文件,其中包含的源码可能是关于如何在易语言中创建和使用画板组件的示例或教程。 画板在编程中通常指的是一个可以进行图形绘制的区域,用户可以在该区域内通过程序控制进行画...
在"易语言画板使用"这个主题中,我们将深入探讨如何利用易语言来创建一个画板应用,以及其中涉及到的核心技术。 首先,我们要明白“画板”通常是指一种用户界面组件,允许用户通过鼠标或触摸设备进行绘图。在易语言...
几何画板使用教程,本教程教你如何使用几何画板,是几何画板的使用基础教程。 几何画板(—数理实验与辅助设计),几何画板是一个优秀的教育软件。
《易语言画板使用详解——基于世恒帮您学易》 在计算机编程的世界里,易语言是一款以中文为编程语言的开发工具,它旨在降低编程的门槛,让更多的人能够参与到程序设计中来。易语言的核心支持库包含了丰富的功能模块...
几何画板使用教程 几何画板是一个适用于几何(平面几何、解析几何、射影几何等)教学的软件平台。它为老师和学生提供了一个观察和探索几何图形内在关系的环境。它以点、线、圆为基本元素,通过对这些基本元素的变换...
易语言 画板使用例子:画笔画画 画圆 画矩形 三角形等 适合新手
《几何画板基础级课件GSP模版170例》是一份全面介绍几何画板使用技巧的资源集合,适合初学者和教师们参考学习。几何画板是一款强大的数学绘图工具,它能帮助用户动态地创建、探索和演示各种几何图形,尤其在数学教学...
几何画板是一款强大的动态几何软件,它允许用户创建...总之,“几何画板自定义工具包-800多个小工具”是提升几何画板使用体验的重要资源,无论你是教师还是学生,都可以从中受益,让几何学习和教学变得更加简单和有趣。
以下是关于易语言画板使用方法的详细说明: 1. 创建新工程: 在使用易语言画板前,首先需要创建一个新的工程。打开易语言主程序,你会看到“新建工程文件”对话框。在这里,选择“Windows窗口程序”选项,点击...
使用 HTML5 Canvas 制作简易画板 使用 HTML5 Canvas 可以制作简易的画板,该画板具有基本的绘图功能,如选择线宽、颜色、清空画布等。本文将详细介绍如何使用 JavaScript 和 HTML5 Canvas 制作简易画板。 ...
在图形绘制方面,Android小画板使用了Canvas和Paint对象。Canvas是画布,用于绘制图形,而Paint则包含了绘制时的颜色、样式等属性。每次用户触摸屏幕时,都会在Canvas上添加一条路径(Path),并用Paint设置好的属性...
几何画板3套中文使用手册,一共3套pdf格式的手册,一看就会,很好的。