Android 制定三種解析度照片:hDPI、mDPI、lDPI,支援的解析度與螢幕尺寸分別如下:

 

◾hDPI – 240DPI,WVGA800(480*800)、WVGA84(480*854)。
◾mDPI – 160DPI,HVGA(320*480)。
◾lDPI – 120DPI,QVGA(240*320)、WQVGA400(240*400)、WQVGA432(240*432)。

 

概分的邏輯就是看寬度,hDPI 是 480px,mDPI 是 320px,lDPI 是 240px。

832983B0706BF72A6B6BF135D8EC03  






先根據三種不同解析度的寬度,製作三張圖片,假定每一列要放八張圓圖,長寬分別為螢幕寬度除以八,即 60px、40px、30px。

6A1D2041E65B549F26EC6B40C51831  


將三張圖片使用相同命名分別放到 res/drawable-hDPI、res/drawable-mDPI、res/drawable-lDPI 裡。


94CD94C26C19A21C67DDFCF2A93C31  

Activity 程式如下。

 

public class DPIActivity extends Activity {

 

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 垂直方向
LinearLayout vLL = new LinearLayout(this);
vLL.setOrientation(LinearLayout.VERTICAL);
LinearLayout hLL;
ImageView iv;
for (int i = 0; i < 8; i++) {
// 水準方向
hLL = new LinearLayout(this);
hLL.setOrientation(LinearLayout.HORIZONTAL);
// 每一列八張圓圖,依解析度不同呈現不同顏色
for (int j = 0; j < 8; j++) {
iv = new ImageView(this);
// 只要用 R.drawable 就好,實際使用哪一種解析度由 Android 決定
iv.setImageResource(R.drawable.circle);
hLL.addView(iv);
}
vLL.addView(hLL);
}
this.setContentView(vLL);
}
}

 

再來一口氣啟動三種解析度的 Android Emulator,使用的解析度分別為 WVGA800(480*800)、HVGA(320*480)、QVGA(240*320),然後在執行 Android App 時,系統會詢問要用哪一個 Emulator。



D6C2E39862253304E2B27C3E20BFF1  

連續執行三個 Android App 後,就可以看到以下的結果。

0C814CDFF3E24E0F3794E408E42931  

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()