杰拉斯的博客

TextView不用获取焦点也能实现跑马灯

杰拉斯 杰拉斯 | 时间:2012-02-13, Mon | 6,652 views
编程算法 

之前在网上找了很多关于TextView的跑马灯效果实现的例子,实现起来都存在一些问题,例如一种是完全重画一个跑马灯,还有就是只设置TextView的相关属性使其具有跑马灯的效果,总的来说这两种方法都是可行的,但是都有其不足之处,第一种太复杂,实现起来比较麻烦,第二种呢,它只能在TextView获得焦点的时候才有跑马灯的效果,这样有时候并不能达到我们所要求的效果。我通过网上的一些例子自己在做了一些改动,就实现了现在不用获取焦点也能“跑”起来的效果。

(阅读全文…)

Android Intent调用大全

杰拉斯 杰拉斯 | 时间:2012-02-10, Fri | 5,902 views
编程算法 

搜集于网络,整理如下:

//调用浏览器
Uri uri = Uri.parse("");
Intent it  = new Intent(Intent.ACTION_VIEW,uri);
startActivity(it);

//显示某个坐标在地图上

Uri uri = Uri.parse("geo:38.899533,-77.036476");
Intent it = new Intent(Intent.Action_VIEW,uri);
startActivity(it);

//显示路径
Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en");
Intent it = new Intent(Intent.ACTION_VIEW,URI);
startActivity(it);

//拨打电话
Uri uri = Uri.parse("tel:10086");
Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);

Uri uri = Uri.parse("tel.10086");
Intent it =new Intent(Intent.ACTION_CALL,uri);
//需要添加 <uses-permission id="android.permission.CALL_PHONE" /> 这个权限到androidmanifest.xml

//发送短信或彩信
Intent it = new Intent(Intent.ACTION_VIEW);
it.putExtra("sms_body", "The SMS text");
it.setType("vnd.android-dir/mms-sms");
startActivity(it);

//发送短信
Uri uri = Uri.parse("smsto:10086");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "cwj");
startActivity(it);

//发送彩信
Uri uri = Uri.parse("content://media/external/images/media/23");
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra("sms_body", "some text");
it.putExtra(Intent.EXTRA_STREAM, uri);
it.setType("image/png");
startActivity(it);

//发送邮件
Uri uri = Uri.parse("mailto:android123@163.com");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(it);

Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_EMAIL, android123@163.com);
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.setType("text/plain");
startActivity(Intent.createChooser(it, "Choose Email Client"));

Intent it=new Intent(Intent.ACTION_SEND);
String[] tos={"me@abc.com"};
String[] ccs={"you@abc.com"};
it.putExtra(Intent.EXTRA_EMAIL, tos);
it.putExtra(Intent.EXTRA_CC, ccs);
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
it.setType("message/rfc822");
startActivity(Intent.createChooser(it, "Choose Email Client"));

//播放媒体文件
Intent it = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file:///sdcard/cwj.mp3");
it.setDataAndType(uri, "audio/mp3");
startActivity(it);

Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);

//卸载APK
Uri uri = Uri.fromParts("package", strPackageName, null);
Intent it = new Intent(Intent.ACTION_DELETE, uri);
startActivity(it);

//卸载apk 2
Uri uninstallUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);

//安装APK
Uri installUri = Uri.fromParts("package", "xxx", null);
returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);

//播放音乐
Uri playUri = Uri.parse("file:///sdcard/download/sth.mp3");
returnIt = new Intent(Intent.ACTION_VIEW, playUri);

//发送附近
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/cwj.mp3");
sendIntent.setType("audio/mp3");
startActivity(Intent.createChooser(it, "Choose Email Client"));

//market上某个应用信,pkg_name就是应用的packageName
Uri uri = Uri.parse("market://search?q=pname:pkg_name");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);

//market上某个应用信息,app_id可以通过www网站看下
Uri uri = Uri.parse("market://details?id=app_id");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);

//调用搜索
Intent intent = new Intent();
intent.setAction(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY,"android123")
startActivity(intent);

//调用分享菜单
Intent intent=new Intent(Intent.ACTION_SEND);   
intent.setType("text/plain");  //分享的数据类型 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");  //主题 
intent.putExtra(Intent.EXTRA_TEXT,  "content");  //内容 
startActivity(Intent.createChooser(intent, "title"));  //目标应用选择对话框的标题

[转]草根和美式互联网:谁是中国的未来

杰拉斯 杰拉斯 | 时间:2011-12-21, Wed | 9,058 views
前沿信息 

我有两个朋友。

W猫在北京中关村。他从小就是个脑袋大眼睛发亮的天才少年,数理化成绩很好,逻辑思维超强,英文和中文一般流利。在首都某著名大学毕业后,W直接去美国名校拿了硕士学位,接着回国创业。我一直觉得,他是硅谷Geek们的中国版。诸如iPad之类的新技术玩意,我总能第一时间从他那儿找到。他也是国内把玩Facebook、Groupon、Foursquare的人。啥叫互联网的未来,W做的网站就代表互联网的未来。

L的公司在上海,大半时间跑广东。他是华南某所不太知名的大学毕业的,小眼睛质朴男,多年以前还是个文学青年。哥们做手机网游的,我见他使过好几款手机,但最贵的一个也不过一千多块钱。比起什么Web2.0、移动互联网的概念,他更关心珠三角的几千万农民工和城市边缘的大学生“蚁族”。怎么关心?在东莞的夜宵摊上跟他们拼啤酒,在富士康厂区外网吧里刷夜,跟靠做他们生意开上宝马的便利店老板扯淡……
W比L拥有更多的掌声和名声。但遗憾的是,他做了好几个连投资人都觉得很酷的网站,却始终没有挣到大钱。原因不外如下:要么是起个大早,却被一大堆抄近道的同行给围追堵截;要么因为资金接济不上,只能让一个更有资源实力的大公司直接吃掉,还有的不知道触了哪根高压线被主管部门直接暂停。

L的生意是实实在在每天都能数着钱的,但他并不想告诉人家他挣到钱。说了也没人信,几十万月薪不到2000的打工仔拿着300块钱买的山寨机玩L公司做的游戏,每月给他贡献过百元的ARPU值,换句话说,他们收入的十来分之一都心甘情愿地送给L了。我有时也想不通,W针对的客户明明是北京、上海这些大城市中最有消费能力的精英。为什么他们舍得花钱买最贵的手机,换最新的笔记本电脑,下最好的馆子,在网上却什么都要免费。

圈里公认,只要是W做的事情必定引来围观。同行也好,媒体人也罢,口口相传,网站流量和用户量几乎是直线上涨。但过了没多久就停止上升势头,跟中老年同志的心脏一样来回振荡。我也问过L,他的草根用户没几个有电脑,更谈不上3G,究竟是怎么发掘的?L笑笑说,网吧都不是最有效的渠道。厂区周边有便利店,工人一下班就聚到那儿。老板提供电脑,里面装了各种手机用的游戏、MP3、电影,再备一本类似早年K歌房里的“点歌簿”。

不用上网,拿根USB数据线,想要什么下什么。还有更方便的,用手推车直接送到宿舍门口。有次跟L吃饭,他问我:如果一款游戏要打入富士康工人市场,请哪位代言人合适?我先猜周杰伦,摇头;又猜春哥也不对;怒了,决定猜当红的凤娇,还是被鄙视!正确答案是凤凰传奇,有百度歌手榜单为证。备选是慕容晓晓。完全超出我知识范围,还好我没猜韩寒。

过去W单纯地以为凭技术就能改变社会,现在他知道你可以不过问政治,但政治会来过问你。要让一个海归精英学会怎么跑门子疏通关系确实有点让人害臊。L曾经愤青过,但如今很务实,好的商人都知道怎么看《新闻联播》。他关心运营商的人事变动和扫黄整顿,还搞过几次工友联谊会,虽然目的是为了推广他的游戏。前段富士康工人“12连跳”,他很严肃地跟我说,这事他们有责任。L讲,那些一想不开就跳楼的年轻人正是他的衣食父母。一部手机通常就是这些工人唯一的娱乐设备,与厂外世界交流的唯一媒介。

他们有责任让工人们更快乐。

我所认识的投资人都对W评价很高,但却更爽快给L投钱。因为他们的心里也明镜似的:在中国,做精英的只能赚吆喝,做草根的才能赚着钱。腾讯、百度不就是最好的例子嘛。上海那位梳分头打摩丝的笑星说过一句经典:我是喝咖啡的,北方那两位是吃大蒜的。咖啡是舶来品,感觉很洋气,吃大蒜却有益身心。今年炒大蒜的都挣了很多钱,没听说谁倒腾咖啡挣了钱。中国的互联网好像也是一样?我曾经突发奇想,如果把W和L对调位置,情况会不一样吗?他们会更理解各自商业的长短吗?后来想想似乎不太可能。

W所追求的其实是“美式的互联网”。在美国,信息革命从上个世纪60年代开始,从1950后到1990后都是“数字化的一代”,之间并没有太大的“数字鸿沟”,他们的生意与生活,工作与娱乐都与互联网分不开。这也是为什么80后的扎克伯格能够和50后的乔布斯、60后的贝索斯、70后的佩奇同台竞技的原因。同时,美国的社会结构是一颗“橄榄”,没有那么大的贫富差距、地区差异、城乡之别,所以,美国的互联网是“全民的互联网”。

但当下中国的社会结构,原本我们以为它会是一座“金字塔”,但越来越变成一颗“图钉”。W和L一个站在削尖的头上,一个站在遥远的钉帽上。中国没有一个所谓“全民的互联网”,中国的互联网是人为割裂的。它既存在于精英的Think笔记本上,也存在于草根的MTK山寨机中。我们的精英也许和美国同步,草根却与越南同步。

事实上,中国的“数字化一代”只存在大城市、几千万中产阶级中。剩下的几亿中国互联网用户归根结底都只是QQ用户。互联网改变不了这个现状,能改变它的也许需要更宏大的社会变革和经济变革?我相信,L看穿了所谓“中国的互联网”的本质。太多的企业在追逐宠坏其实有限的一群客户。相反,有一大批“数字化贫民”却没有办法改变自己的命运,只能沉醉于廉价的虚拟娱乐中。L的商业很符合中国国情,但能走出国门吗?

按照柏拉图的“洞穴”理论,每个人从出生开始就呆在自己挖的一个洞穴里,我们所见的世界只不过是被阳光抛到洞穴墙壁上的影像,而我们这些洞穴的居民却把它当作是真实的世界,因为我们没有见到过其他的东西。而真实的世界却是在洞穴之外,在有太阳的地方。不管看这份报纸的各位精英们是否承认,我们和某些人 —一群数量比我们大得多的人(中国的农民工、刚毕业的大学生等等,大概3亿人),完全生活在两个不同的世界。如果能关注那一群人,还会有很多机会。但很有可能,我们永远都走不出自己呆的洞穴。

网页建设规范

杰拉斯 杰拉斯 | 时间:2011-11-13, Sun | 9,901 views
前端开发 

一、命名规范

文件命名的原则:以最少的字母达到最容易理解的意义。

1.一般文件及目录命名规范:

每一个目录中应该包含一个缺省的html 文件,文件名统一用index.htm 文件名称统一用小写的英文字母、数字和下划线的组合尽量按单词的英语翻译为名称。例如:feedback(信息反馈),aboutus(关于我们) 。

多个同类型文件使用英文字母加数字命名,字母和数字之间用_分隔。例如:news_01.htm。注意,数字位数与文件个数成正比,不够的用0补齐。例如共有200条新闻,其中第18条命名为news_018.htm

(阅读全文…)

心情

杰拉斯 杰拉斯 | 时间:2011-10-07, Fri | 4,500 views
心路历程 

我每天都关注你的状态可我几乎从不评论。

因为那里面诉说的都是我不知前后的故事。

说的也都是无关于我的事情。

可我还是每天都看,因为它多少能让我知道你最近的心情

我们彼此的交集变得越来越少。

我知道所有的难过与快乐在时间的打磨下都会变得无色无味。

慢慢得习惯了不再问候,慢慢的变的无话可说。

于是在那个交点之后我们越走离彼此就越远。

尽管拼命地阻拦到最后才发现在现实面前我变得无能为力。

我明白这不是我们彼此期待的结果但我们早已无力对抗这距离、时间、以及越来越多的空集。

在往后有一天我们在某个路口偶然相遇,猛然发现那个就是曾经陪我一起上课下课的人。

但或许那时我们早已不再年轻。

我知道我们注定会越走越远。

但我希望你带着我的祝福幸福快乐的生活下去。

无论是那些离开我或者是依旧牵念着我的朋友。

当时间越走越远的时候,当我被越来越多的人忘却的时候,当那些我曾经拥有的都失去的时候。

我知道有一样东西我依旧拥有着...

那就是我们在一起时所有开心的、难过的、平淡的回忆。­