昨天跟朋友说:如果明天天气好,我想去朝阳公园拍照。结果今天天气还真得超好,可惜啊可惜,下午睡觉睡太久了,所以就放弃了超验公园,就近去了798。应该是751国际设计节的原因,798里面就跟停车场似的。再加上几个个展开放,美女也很多,各种类型。不过我不是去看美女的,所以就走了人少的路线,来了无数次了,没有太新奇的地方,今天过来练习摄影。
小店橱窗里的天使,俏皮地向上看,是在期待着什么?
昨天跟朋友说:如果明天天气好,我想去朝阳公园拍照。结果今天天气还真得超好,可惜啊可惜,下午睡觉睡太久了,所以就放弃了超验公园,就近去了798。应该是751国际设计节的原因,798里面就跟停车场似的。再加上几个个展开放,美女也很多,各种类型。不过我不是去看美女的,所以就走了人少的路线,来了无数次了,没有太新奇的地方,今天过来练习摄影。
小店橱窗里的天使,俏皮地向上看,是在期待着什么?
虽然我的文章不多,访客也不多,但是我觉得能够给访客留下印象的,应该还是配图比文章更多一些。我的工作是软件开发,弄个博客把那么多时间放到画配图上,图什么呢?因为我喜欢设计。我开玩笑说我画图是不务正业,其实,写博客并不是我的工作,但当我把我喜欢做的事,和我的工作联系起来,当我把博客作为生活的一部分,我感到满足。
今天看了一集斯坦福的iOS7开发公开课。里面提到了MVC策略,曾经我也看过一些MVC的文章,但是始终理解不深,今天看完后却有一种恍然大悟的感觉,可能和接触的程序多了也有关系吧。但是那个白胡子大叔讲得确实很清晰明白,配合动画,就让我比较容易理解,事实证明我还是喜欢看动画的。
请注意,下面所说的是公开课的内容和自己基于公开课内容的理解,所以更大程度偏重于iOS下的MVC。
这篇文章对OC中的变量做一下整理,主要有成员变量/实例变量、属性/属性变量、全局变量。先说一下各个变量的定义位置:
- 成员变量/实例变量:定义在@interface或@implementation语句紧随的大括号里面的变量。
- 属性/属性变量:定义在@interface部分的@property后面的变量。
- 全局变量:在@interface或@implementation语句之前的变量。
- 静态变量:在@implementation中,使用static进行说明的变量。
下面用图片说明:
和Java丰富的教程资源不同,OC的教程相比起来就少得多了,而且很多就是E文的。所以虽然通常看视频上手快些,但实际上对于OC来说,买本书是个不错的选择。看了网上的评价,选择了《Object-C程序设计(第4版)》,现在第六版已经出版了,但是为毛第四版还涨价了 -_-|||
有个段子:
说有个程序员为了陶冶情操,提升生活品质,想在闲暇时间学习书法。一天,他把宣纸铺好,拿起笔,迟疑了几秒,慎重地在纸上写下了“Hello Wrold”。
每个程序员对Hello World都不会觉得陌生。OC也从这里开始:
在开始Android开发近两年之后,我拿起了Object-C的教程。是的,iOS也不太远了。
为什么不是Swift?先用OC熟悉下Xcode,顺便还能开发个MacOS上的小工具什么的嘛。另外XCode6和Yosemite还没正式版,不敢贸然升级。
先说说对OC的感觉。其实就是对C的感觉,这几天写OC让我想起了以前在学校学C的感觉,还有点怀念。之前有看到网友说其实OC中的面向对象思想,比Java要更纯粹。刚看了几天,我不敢口出狂言,说几个这几天感受到的细节:
1. OC的开闭原则比Java更彻底。OC里面的接口和实现是完全分离并且是强制分离的:接口使用
@interface
能见到好久不见的好朋友,这是今天最幸福的事情。还像在学校一样,相互没有顾虑和客套,坐在小店里,走在北海边,抚摸杨柳,享受秋风;谈谈现在的生活,想想未来的日子;故友相见,人生一大乐事。
晚上和曾经的室友撸串喝酒逛校园,还像曾经一样调侃、阔谈,真好;已经没有多少机会卧谈了,祝你我都顺利。
上周入手了我的第一台单反,很久的愿望终于实现了。
看着厚厚的说明书和复杂的按键,发现摄影比我想象的还要难得多,够我消化好一阵的了。今天好朋友出差来北京,刚好带出去拍一下,因为实在不熟练,大多都是在auto模式下拍的,从不多的照片里挑出一张还算不错的,但还是忍不住做了些后期。贴出来记录一下,以后只能比这好,不能比这差。
—— 拍摄于 2014年9月13日 北海·北京
上一篇《Android Canvas Matrix —— 从CircleImageView说起》是我对CircleImageView项目的学习和思考,这篇说一下从“绘制圆形头像”这个出发点深入下去的收获——如何将Bitmap绘制出来,如何控制Bitmap的绘制过程。
参见上图,绘制Bitmap的方法,基本有两种:1. Canvas.drawBitmap();方法。2. 和CircleImageView中的做法一样,使用BitmapShader,将Bitmap作为Paint的属性。
前段时间的一个项目中,用到了CircleImageView这个库(View in Github),因为项目比较近,虽然源码不多,但是也没仔细看,用轮子嘛。这两天有点时间,仔细看看这个精致的库,也多了解了不少和Canvas、Matrix相关的东西。
先贴一张CircleImageView的效果图:
Great Wall的威力还是挺大的,不过在这个Android手机市场份额占到了70%以上(道听途说,莫纠结)的时候,居然连开发者都会被限制到这个地步,也是蛮拼的了。
上有政策,下有对策,SDK下载失败,只需要两步就可以解决:1) 修改hosts; 2) 修改SDK Manager设置,强制使用HTTP协议访问HTTPS请求。
sudo vim /etc/hosts; 在下面加入: