Sep 21
news参看文章,这个写得好
Spannable是啥?Spannable是设置文字样式的基础类,它引出和相关的一大堆类无非就做了一件事:告诉我这个文字样式是啥到底怎么渲染有些什么效果。

點擊在新視窗中瀏覽此圖片

这是Spannable在文字相关类中的关系图,包括SpannedString在类的,所有Spanned都是继承于Spannable接口,这和String和StringBuilder并列为三大字符串类。如果说String为普通字符串,StringBuilder是高级动态字符串,那么Spanned就是附带样式的高级字符串了,而所谓Spannable,就是描述的这个字符串的样式部分。

Sep 14
这个layout不是说的界面布局,而是文字渲染布局,基础类是一个叫Layout的抽象类。layout完成了和文本渲染几乎所有的相关工作,只要一个view调用layout来测量大小,来绘制图像,那么它就能和textview的表现几乎一模一样。textview里按照不同的判断条件使用了不同的layout继承类型,下面,我们就就layout基类(抽象类)和各个继承类的使用展开整理。

Aug 31
大家都知道,在android的webview中,有非常非常严重的bug。
那就是4.2以下的webview的JavascriptInterface可以访问任何java本地代码,以至于程序完全被劫持。
更惨的是,android旧版本自带一个searchBoxJavaBridge_的接口,导致漏洞直接暴露在互联网中。

查看乌云上近年来的记录,大到微信,小到快车,无数app都经历过次劫。
android4.2以上修复了这个bug,并提供了更安全的解决方案:在提供的方法前添加注解:@ JavascriptInterface
因此,我们需要一个合理的解决方案。

当然,方法很多,比较推荐的是微信采用的jsbridge方案(参看解包微信的源码,js代码并没有混淆)。
然而对于安卓开发者,我想追求一种更优雅的,可以和4.2以上官方方案自然衔接的方案。

Aug 30
ZXING库是一个由谷歌出品的开源识别库,可以解码几乎所有一维和二维的图形,当然,也可以编码。zxing生来是为java和android二开发的,而现在,它已经被移植到包括ios在内的各个平台。官方地址是:https://github.com/zxing/zxing,在其中可以看到各种example和各个语言的移植或者接口。

只是使用zxing的话,最核心的调用方法是:
- 解码:new MultiFormatReader().decodeWithState(bitmap),传入BinaryBitmap格式的图像,一句话就可以得到返回的结果
- 编码:new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, width, height, hints),传入一个字符串和要编码的格式,大小等,就可以获得一副BitMatrix格式的图像数据已供使用了

Feb 27
本來是賀春的小作品,兼做為新特性的測試與展示。shy
本來應該在春節期間發出來的~~~但是出去玩去了沒!完!成!love二了

地址是【點擊進入
Feb 7
用JS讀取文件這個命題似乎感覺很奇怪
事實上指的在HTML5相關的API中,文件類->Blob->Buffer
讀取文件則是用DataView類讀取ArrayBuffer的過程
Feb 7
之前給社團的小盆友展示貪吃蛇的做法,自己也做了一個高拓展性的360度貪吃蛇框架
此處稍微記錄一下這個貪吃蛇框架構建理念。
【demo地址:http://lrdcq.com/test/snake.html
Feb 6
SC4中使用了大量的FSH格式文件作為貼圖素材,這是一種屬￿EA私有的貼圖格式。
不過經過大量的努力,我們獲取到FSH文件格式分析結果,並且除了FSH私有head和entry以外,貼圖的主要內容事實上是DXT1或者DXT3壓縮格式的數據(當然,也有可能是16/24/32位RGB或者8位查表數據,但不常用)