Skip to main content

自動偵測螢幕大小和解析度

· 2 min read

在 Android 機器上,螢幕的解析度可以用「螢幕大小」和「螢幕點距」兩個參數來表示。

一般的方法

在 Android 1.6 版以後,可以使用 config.screenLayout 語句來判斷螢幕大小

> Configuration config = getResources().getConfiguration();
> if((config.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL){
> }
>

UPDATE 2010/4/14: sam 說 「config = new Configuration ()」只會回傳預設的 Configuration, 而非當前的 Configuration. 找了一下最好是使用 getResources ().getConfiguration ()

支援的參數與代碼如下

  • Configuration.SCREENLAYOUT_SIZE_UNDEFINED 0
  • Configuration.SCREENLAYOUT_SIZE_SMALL 1
  • Configuration.SCREENLAYOUT_SIZE_NORMAL 2
  • Configuration.SCREENLAYOUT_SIZE_LARGE 3 要檢查點距,可以使用 DisplayMetrics 語句來判斷螢幕點距
> DisplayMetrics dm = new DisplayMetrics(); 
> getWindowManager().getDefaultDisplay().getMetrics(dm);
> if((dm.densityDpi == dm.DENSITY_HIGH)){
> }
> 支援的參數與代碼如下
  • DENSITY_HIGH 240 (dpi)
  • DENSITY_MEDIUM 160
  • DENSITY_LOW 120
  • DENSITY_DEFAULT 160 相容 1.5 以下機型

根據Android 版本使用圖表,2010 年 1 月時 Android 1.5 市佔率還是接近 1/3,但是這 1/3 的機器上並無法使用上面的 API。

在 1.5 版上,其實仍然可以用 density 語句來判斷螢幕點距比率

> DisplayMetrics dm = new DisplayMetrics(); 
> getWindowManager().getDefaultDisplay().getMetrics(dm);
> if((dm.density >= 1.5)){
> }
>

density 的值 1 代表一般點距,1.5 代表高點距,0.75 代表低點距。要偵測市面上所有的機器是否是高解析度機型,只要運用以上方法,就可以自動偵測出螢幕大小和點距囉。

无知者的安全

· 2 min read

买书时,你不只是为那本书付费,也是在为那些有可能被退回和销毁的书付费 无论出版商做不做电子书,他们所拥有的内容的数字版已经存在于网上了。有的是通过扫描+文字识别技术制作的,而大部分热门书则是网友合力誊抄的。 尽管 DRM 的初衷在于保护老板们的权利,防止完美的数字拷贝被非法传播,但实际上它对于盗版毫无作用。每一个人们需要的数字媒体文件都会有人免费供应,不管是通过破解 DRM,还是拷贝未受 DRM 保护的文件,还是从未受保护的类比拷贝重新合成一份数字版本。DRM 唯一的作用就是令合法消费数字媒体的用户感到郁闷,同时遏制了方兴未艾的数字发行市场。 为数字媒体文件设置 DRM 是一种在数学、技术和智力上都已经破产的做法。它完全达不到其防止盗版的目的,倒是会带来相当多的负面效果:限制消费者对其通过合法渠道购买的内容所拥有的合法权利,并动辄以民事惩罚或刑事起诉相威胁。 按照成本和需求定价是好的,但这个成本和需求应该是你所卖的实际产品的成本和需求,而不是以另外一种成本和需求完全不一样的产品为基准!

这种做法是不合逻辑的,这不是在卖电子书,而是在确保电子书的销售不影响精装本纸书的销量。 --from [阅读的未来] 电子书的前世今生(上),

自由軟體授權

· One min read

自由軟體授權方式一直是讓許多工程師很困擾的事,OSSF 有提供 License Wizard(授權精靈)這個網頁工具,可以很直觀的查看大家所關心的項目,例如再次散布程式時是否必須提供原始碼等。

另外有一個類似的是創用 CC (Creative Commons) 也提供了相似的創用 CC 授權精靈,在發表文章 / 圖片 / 影音到網路上時可以使用。

TAT桌面

· One min read

每天使用的桌面需不需要這麼絢麗哩?