当前位置:  编程技术>移动开发
本页文章导读:
    ▪程序中如何实时发信息到手机        程序中怎么实时发信息到手机     写程序免不了重要事件发送消息提醒,比如说你的股票已经到了该卖出的价位了等等。当然,你可以去买个短信接口或给iphone装各种app。而本文讲的是一种.........
    ▪ erlang列表拼凑的两种方式的速度对比        erlang列表拼接的两种方式的速度对比 今天无聊写了一个列表拼接两种方式的对比,主要是对比一下用“++”和“|”拼接列表的速度,书上说,“++”拼接列表是极为低效的操作。这里我用代.........
    ▪ CGContext 初记       CGContext 小记  from http://www.cocoachina.com/bbs/read.php?tid=75122      CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文  CGContextMoveToPoint 开始画线  CGContextAddLineToPoint 画直线    CGContextAddEllipseIn.........

[1]程序中如何实时发信息到手机
    来源: 互联网  发布时间: 2014-02-18
程序中怎么实时发信息到手机
    写程序免不了重要事件发送消息提醒,比如说你的股票已经到了该卖出的价位了等等。当然,你可以去买个短信接口或给iphone装各种app。而本文讲的是一种免费的实时提醒。
    1.打开google并登录。进入设置-->账户设置,启用两步验证。(google要求的安全性验证)
    2.打开“关联的网站、应用和服务”输入应用的名字,生成应用密码。
    3.把密码输入java mail程序中。程序中gmail的smtp设置为:smtp.gmail.com 465 使用SSL。(java mail教程请自行搜索)
    这步完成后自动登录gmail发送邮件已经OK,下面来看看怎么收邮件。
    4.Iphone免费的邮件接收方式有Exchange和IMAP。显然IMAP及时性太差不能满足要求。而Gmail已经关闭了Exchange方式,不接受新账号申请使用Exchange,搜索支持Exchange的邮箱会发现企鹅公司QQ mail支持Exchange。请看官方设置
    5.现在用程序自动登录gmail给自己的QQ邮箱发送一份邮件,Iphone就立即提示收到了。不用花一分钱。
    这应该是目前国内唯一可用的免费实时的手机消息提醒,欢迎交流。

    
[2] erlang列表拼凑的两种方式的速度对比
    来源: 互联网  发布时间: 2014-02-18
erlang列表拼接的两种方式的速度对比

今天无聊写了一个列表拼接两种方式的对比,主要是对比一下用“++”和“|”拼接列表的速度,书上说,“++”拼接列表是极为低效的操作。这里我用代码实现了一下,分别用两种方法生成N个零的列表:

%%列表拼接对比
listsTimeCon(N)->
	{TimeOne,_} = timer:tc(test,listsCon1,[N]),
	{TimeTwo,_} = timer:tc(test,listsCon2,[N]),
	case TimeOne > TimeTwo of
		true ->
			io:format("'++',~p~n",[TimeOne - TimeTwo]);
		_ ->
			io:format("'[|]',~p~n",[TimeTwo - TimeOne])
	end.
listsCon1(0)->
	[];
listsCon1(N)->
	[0]++listsCon1(N-1).

listsCon2(0)->
	[];
listsCon2(N)->
	[0|listsCon2(N-1)].

         编译并运行后结果是,当列表长度较短的时候,“|”的速度比较快,但是当列表长度较长的时候,“++”的拼接速度会比较快,我尝试测试出临界点的时候,发现每次测试的结果也有出入,例如当N等于100000。出现这个问题可能因为内存分配问题,或者是timer:tc/3的使用方式有错,请大神们提点一下小弟,谢谢!


    
[3] CGContext 初记
    来源: 互联网  发布时间: 2014-02-18
CGContext 小记

 from http://www.cocoachina.com/bbs/read.php?tid=75122

 

 

 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文

 CGContextMoveToPoint 开始画线

 CGContextAddLineToPoint 画直线

 

 CGContextAddEllipseInRect 画一椭圆

 CGContextSetLineCap 设置线条终点形状

 CGContextSetLineDash 画虚线

 CGContextAddRect 画一方框

 CGContextStrokeRect 指定矩形

 CGContextStrokeRectWithWidth 指定矩形线宽度

 CGContextStrokeLineSegments 一些直线

 

 CGContextAddArc 画已曲线 前俩店为中心 中间俩店为起始弧度 最后一数据为0则顺时针画 1则逆时针

 CGContextAddArcToPoint(context,0,0, 2, 9, 40);//先画俩条线从point 到 弟1点 , 从弟1点到弟2点的线  切割里面的圆

 CGContextSetShadowWithColor 设置阴影

 CGContextSetRGBFillColor 这只填充颜色

 CGContextSetRGBStrokeColor 画笔颜色设置

 CGContextSetFillColorSpace 颜色空间填充

 CGConextSetStrokeColorSpace 颜色空间画笔设置

 CGContextFillRect 补充当前填充颜色的rect

 CGContextSetAlaha 透明度

 

 CGContextTranslateCTM 改变画布位置

 CGContextSetLineWidth 设置线的宽度

 CGContextAddRects 画多个线

 CGContextAddQuadCurveToPoint 画曲线

 CGContextStrokePath 开始绘制图片

 CGContextDrawPath 设置绘制模式

 CGContextClosePath 封闭当前线路

 CGContextTranslateCTM(context, 0, rect.size.height);    CGContextScaleCTM(context, 1.0, -1.0);反转画布

 CGContextSetInterpolationQuality 背景内置颜色质量等级

 CGImageCreateWithImageInRect 从原图片中取小图

 

//字符串的 写入可用  nsstring本身的画图方法 

 -(CGSize)drawInRect:(CGRect)rect 

            withFont:(UIFont *)font 

       lineBreakMode:(UILineBreakMode)lineBreakMode 

           alignment:(UITextAlignment)alignment;来写进去即可

 

//对图片放大缩小的功能就是慢了点

 UIGraphicsBeginImageContext(newSize);

 UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

 UIGraphicsEndImageContext();

 

 CGColorGetComponents() 返回颜色的各个直 以及透明度 可用只读const float 来接收  是个数组

 

//画图片 

 CGImageRef image=CGImageRetain(img.CGImage);

 CGContextDrawImage(context, CGRectMake(10.0, height - 100.0, 90.0, 90.0), image);

 

//实现逐变颜色填充方法 CGContextClip(context);

 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();

 CGFloat colors[] =

    {

        204.0 / 255.0, 224.0 / 255.0, 244.0 / 255.0, 1.00,

        29.0 / 255.0, 156.0 / 255.0, 215.0 / 255.0, 1.00,

        0.0 / 255.0,  50.0 / 255.0, 126.0 / 255.0, 1.00,

    };

 CGGradientRef gradient = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));

 CGColorSpaceRelease(rgb);    

 CGContextDrawLinearGradient(context, gradient,CGPointMake(0.0,0.0) ,CGPointMake(0.0,self.frame.size.height),                    

    kCGGradientDrawsBeforeStartLocation);

    

//注:  画完图后,必须

    先用CGContextStrokePath来描线,即形状

    后用CGContextFillPath来填充形状内的颜色.

 

//填充一个路径的时候,路径里面的子路径都是独立填充的。

//假如是重叠的路径,决定一个点是否被填充,有两种规则

 1,nonzero winding number rule:非零绕数规则,假如一个点被从左到右跨过,计数器+1,从右到左跨过,计数器-1,最后,如果结果是0,那么不填充,如果是非零,那么填充。

 2,even-odd rule: 奇偶规则,假如一个点被跨过,那么+1,最后是奇数,那么要被填充,偶数则不填充,和方向没有关系。

 

 

 CGContextEOFillPath //使用奇偶规则填充当前路径

 CGContextFillPath //使用非零绕数规则填充当前路径

 CGContextFillRect //填充指定的矩形

 CGContextFillRects //填充指定的一些矩形

 CGContextFillEllipseInRect //填充指定矩形中的椭圆

 CGContextDrawPath //两个参数决定填充规则,kCGPathFill表示用非零绕数规则,kCGPathEOFill表示用奇偶规则,kCGPathFillStroke表示填充,kCGPathEOFillStroke表示描线,不是填充

 

 

//设置当一个颜色覆盖上另外一个颜色,两个颜色怎么混合

//默认方式是

 result = (alpha * foreground) + (1 - alpha) * background

 

 CGContextSetBlendMode :设置blend mode.

 CGContextSaveGState :保存blend mode.

 CGContextRestoreGState:在没有保存之前,用这个函数还原blend mode.

 CGContextSetBlendMode 混合俩种颜色

 

 

 

 

 

 

 

 

 

 

1 楼 啸笑天 2013-11-08  
下面列出了Quartz 2D包含的数据类型:

CGPathRef:用于向量图,可创建路径,并进行填充或描画(stroke)CGImageRef:用于表示bitmap图像和基于采样数据的bitmap图像遮罩。CGLayerRef:用于表示可用于重复绘制(如背景)和幕后(offscreen)绘制的绘画层CGPatternRef:用于重绘图CGShadingRef、CGGradientRef:用于绘制渐变CGFunctionRef:用于定义回调函数,该函数包含一个随机的浮点值参数。当为阴影创建渐变时使用该类型CGColorRef, CGColorSpaceRef:用于告诉Quartz如何解释颜色CGImageSourceRef,CGImageDestinationRef:用于在Quartz中移入移出数据CGFontRef:用于绘制文本CGPDFDictionaryRef, CGPDFObjectRef, CGPDFPageRef, CGPDFStream, CGPDFStringRef, and CGPDFArrayRef:用于访问PDF的元数据CGPDFScannerRef, CGPDFContentStreamRef:用于解析PDF元数据CGPSConverterRef:用于将PostScript转化成PDF。在iOS中不能使用。

图形状态
Quartz通过修改当前图形状态(current graphics state)来修改绘制操作的结果。图形状态包含用于绘制程序的参数。绘制程序根据这些绘图状态来决定如何渲染结果。例如,当你调用设置填充颜色的函数时,你将改变存储在当前绘图状态中的颜色值。
Graphics Context包含一个绘图状态栈。当Quartz创建一个Graphics Context时,栈为空。当保存图形状态时,Quartz将当前图形状态的一个副本压入栈中。当还原图形状态时,Quartz将栈顶的图形状态出栈。出栈的状态成为当前图形状态。
可使用函数CGContextSaveGState来保存图形状态,CGContextRestoreGState来还原图形状态。
注意:并不是当前绘制环境的所有方面都是图形状态的元素。如,图形状态不包含当前路径(current path)。下面列出了图形状态相关的参数:

Current transformation matrix (CTM):当前转换矩阵Clipping area:裁剪区域Line: 线Accuracy of curve estimation (flatness):曲线平滑度Anti-aliasing setting:反锯齿设置Color: 颜色Alpha value (transparency):透明度Rendering intent:渲染目标Color space: 颜色空间Text: 文本Blend mode:混合模式

Quartz 2D 坐标系统
坐标系统定义是被绘制到Page上的对象的位置及大小范围,如图1-4所示。我们在用户空间坐标系统(user-space coordination system,简称用户空间)中指定图形的位置及大小。坐标值是用浮点数来定义的。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3