- hdpi - 240dpi,WVGA800(480*800)、WVGA84(480*854)。
- mdpi - 160dpi,HVGA(320*480)。
- ldpi - 120dpi,QVGA(240*320)、WQVGA400(240*400)、WQVGA432(240*432)。
先根據三種不同解析度的寬度,製作三張圖片,假定每一列要放八張圓圖,長寬分別為螢幕寬度除以八,即 60px、40px、30px。
將三張圖片使用相同命名分別放到 res/drawable-hdpi、res/drawable-mdpi、res/drawable-ldpi 裡。
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。連續執行三個 Android App 後,就可以看到以下的結果。
沒有留言:
張貼留言