網頁

2013年5月29日 星期三

Note on Android Display pixel unit

Android 有幾個顯示圖形/文字的單位, 其實不是很容易分辨出來, 尤其有些文件還有錯誤, 網路上有些說明也很混淆, 這邊做個說明整理.
 
 在處理 UI 部份的大小, 位置, 等數據時, 要特別留心用到的是什麼單位.

pt: (Points)
        1/72 of an inch based on the physical size of the screen.
        每一英吋需要畫幾個點.

px: (Pixel)
        corresponds to actual pixels on the screen.
        實際上螢幕上顯示的一個點.

mm: (millimeters)
        公分

in: (inches)
        英吋

以上這些都很簡單直覺, 實在是沒有什麼需要說明的. 真正比較複雜的, dp/dip/sp. 在這之前, 先說明一下 Density Bucket:

 

Density Bucket

        Android 把螢幕的解析分成以下幾個等級, 稱為 Density Bucket,從以的表格, 可以了解到, Android 在顯示到螢幕輸出的時候, 會根據目前實際所需要的輸出, 把圖片做放大縮小, 這樣當我們需要顯示一個 0.5 英吋平方的圖案時, 就可以在大多數的輸出裝置看到大小相近的圖案. 雖然圖案的細節可能有差異 (圖案內容精細與否), 但大小是相仿的. 同時, 對於這些不同的 Density Bucket, 設計者也可以使用不同的 resource 檔案,  針對各不同的 Density Bucket 去做優化.
 
Density Bucket Name
Density Bucket
Screen Density
Ratio
Scaler
Low
ldpi
120 dpi
3
0.75
Medium
mdpi
160 dpi
4
1.00
TV
tvdpi
213 dpi
5.325
1.33
High
hdpi
240 dpi
6
1.50
Extra High
xhdpi
320 dpi
8
2.00
Extra Extra High
xxhdpi
480 dpi
12
3.00

dp/dip (density independent pixel) 是會經過 Density Bucket 做放大縮小的單位, sp則是會再套用使用者的字型單位.
下面這個表格, 可以進一步的說明 dp/dip 是什麼
Device Density
Density Bucket
# of dp
Scaling Factor
Physical Size
232 dpi
hdpi-240 dpi
100 dp
1.5 px/dp
150 px/232 dpi = 0.647 in
240 dpi
hdpi-240 dpi
100 dp
1.5 px/dp
150 px/240 dpi = 0.625 in
263 dpi
hdpi-240 dpi
100 dp
1.5 px/dp
150 px/263 dpi = 0.570 in
314 dpi
xhdpi-320 dpi
100 dp
2.0 px/dp
200 px/314 dpi = 0.637 in
320 dpi
xhdpi-320 dpi
100 dp
2.0 px/dp
200 px/320 dpi = 0.625 in
336 dpi
xhdpi-320 dpi
100 dp
2.0 px/dp
200 px/336 dpi = 0.595 in
 
換句話說, 不管 device 的螢幕大小, 精細程度, 指定同樣的 dp (dip) , 在不同的 device 上, 看到的大小也是相仿的.
 
那如果顯示的結果佔畫面的1/2 或是成比例呢 ? 這時候就不要用 dp/dip 了, 取得螢幕的實際大小, 用 px (pixel ) 去換算, 說不定比較快 (可以參考以下程式碼).
 
DisplayMetrics metrics = new DisplayMetrics(); 
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(metrics);
 
screen_width =  metrics.widthPixels;
screen_height =  metrics.heightPixels;
 
 
 

2013年5月21日 星期二

發行 Android app 需要的資料及檔案列表.


發行 app 的時候, 需要提供一些資料及檔案. 目的在於讓使用者對這個 app 有些了解. 光是靠名稱及文字說明, 實在並不容易讓別人了解, 所以需要附一些圖檔. 這樣看到的人, 就可以對這個 app 有一些基本的認識.

前面有加 * , 是表示必填, 或是必須提供的.

* APP  名稱

最多 30 個字. 中英文都算一個字.

 * APP  說明

最多 4000 個字. 中英文都算一個字.

 APP  宣傳文字

最多 80 個字. 中英文都算一個字.

APP  最近變更

最多 500 個字. 中英文都算一個字.

* APP 螢幕擷取畫面

JPEG 24-bit PNG (無透明層),邊長下限 320 pixel, 上限 3840 pixel. 至少要 2 , 每個類型最多 8 .

Android APP 可以在手機或是平板電腦上面執行. 但是不一定運行的效果相同. 所以對 手機, 7 吋的平板電腦, 10 吋的平板電腦這 3 種應用, 可以分別提供不同的螢幕擷取畫面, 每種最多 8 . 如果沒有支援, 當然就不用提供.

* APP高解析度圖示

512x512, PNG 32-bit (有透明層). 這個檔案是使用在 Google Play , app 介紹的上方左邊, 價格及安裝按紐的左邊的圖示.

APP主題圖片

1024x500, JPG PNG-24bit (無透明層). 這個圖片是 Google Play , app 介紹的上方右邊一大片的橫幅.
 

APP宣傳圖片

180x120, JPG PNG-24bit (無透明層). 這個圖片是 Google 用來做廣告跳出的.如果選擇要打廣告, Google 會在某些時候讓它跳出來.

APP 宣傳影片

上傳到 YouTube 之後, 把連結複製過來.
 

聯絡人詳細資料

網站或是電子郵件信箱都可以.