Archive for 二月 2014

Eclipse恢复被删除的文件(不依赖git,svn等版本控制软件)

今天一个不小心把这两天写的几个java文件给删了,因为为了测试改了其他同事负责的模块的代码,所以没有提交到git,悲剧啊。无意中发现eclipse自带了恢复历史文件功能,实在太强大了。在项目上点右键-从本地历史记录恢复,应该能找到被删除的文件了,还有标记备份时间。
可以在常规-工作空间-本地历史记录设置备份选项。

iOS开发:用DES对字符串加解密

参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同。
原先Android版的客户端与服务端(PHP)通讯部分内容用DES加密,加密方法:http://www.pocketdigi.com/20121112/940.html
直接拷贝原文的源码,发现结果不同,原因在于,我在java和php里用的IvParameterSpec是动态的,就是key转成byte[],但原文是静态写死的。
上修改后的源码: Continue reading ‘iOS开发:用DES对字符串加解密’ »

iOS开发:给UIView设置背景图片

UIView没有setBackgroundImage方法,只有setBackgroundColor,但是图片可以转成UIColor,所以,设置方法:


[[self view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg_player"]]];

iOS开发:解决UIScrollView不滚动的问题

照着书上的Demo(iOS 5.0的教程),在- (void)viewDidLoad里设置scrollView的contentsize,让它大于屏幕的高度,却发现在模拟器中没用,还是不能滚。经过一翻搜索,发现,这是因为iOS 6.0中新增的AutoLayout机制引起的,viewDidLoad后,AutoLayout会再一次把scrollView的contentSize设为屏幕的宽高度,所以,我们的设置就无效了。
解决方法:把设置ContentSize的代码放到viewDidAppear里。


-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [_scrollView setContentSize:CGSizeMake(500, 1800)];
}

xCode,IDE而已,不同版本之间变化要不要这么大?

IOS开发: 为UIImageView添加点击事件

UIImageView并不像UIButton一样,点点鼠标就可以关联点击事件,也不像Android里有onClickListener,这里需要借助于UITapGestureRecognizer类。从类名上就可以看出,这个类就是用于处理tap(单击)事件的。
bbc和voaspecial是UIImageView对象 Continue reading ‘IOS开发: 为UIImageView添加点击事件’ »

Android开发:找出TextView里被点击处的字符和单词

原理,在TextView的onTouch事件里,取到点击的座标,再根据y座标,找出第几行,再根据行号,找出该行显示的字符串,然后根据x座标,计算点击处的字符。如果处理中文,找到即可,找英文单词的话,在该字符前后查找,看其是否属于同一个单词。
根据x座标行内查找这里,应该有更快的算法,因为我用的的最笨的方法,希望得到高人指点。 Continue reading ‘Android开发:找出TextView里被点击处的字符和单词’ »

Android 计算文本占用高度


Paint paint = new Paint();
paint.setTextSize(fontSize);
FontMetrics fm = paint.getFontMetrics();
int textHeight=(int) Math.ceil(fm.descent - fm.top) ;

Git 忽略.gitignore文件自身

如果要排除某些文件不提交,可以写规则到.gitignore文件中,但是.gitignore不能忽略自身,而我又不想把这个文件提交到server上,怎么办呢?可以编辑.git/info/exclude文件,语法与.gitignore一致。两个文件区别在于,exclude只用于设置本地需要忽略的文件,而.gitignore是公共需要排除的。