2011-04-04 48 views
3

我有一款爲Droid(手機)開發的應用程序。在應用程序中,我使用:Droid手機和Xoom都可以使用Android mdpi繪圖嗎?

位圖b = BitmapFactory.decodeResource(getResources(),R.drawable.bg);

在應用程序中設置背景位圖。位圖大小爲480x800 這是Droid的WVGA屏幕大小(不帶狀態或標題欄)。

兩個問題: 當我旋轉手機時,Droid進入橫向模式,背景不再適合。如何在不使用佈局時告訴應用程序需要使用橫向模式?

其次,當我在Xoom上運行這個應用程序時,它會選擇不屬於Xoom屏幕大小的mdpi drawable。如何定義第二個具有1280x800大小的mdpi drawable?我想如果我使用佈局,我會創建一個layout-xlarge目錄,並在該佈局的imageview中放置1280x800背景,對不對?

謝謝!

更新*: 感謝您的好評!我贊成每個人。 我更新了代碼,以便爲Doom使用drawable-xlarge-port/drawable-xlarge-land,併爲Droid使用drawable-port-mdpi/drawable-land-mdpi。

我沒有使用佈局,因爲我需要直接繪製到活動畫布上,並且不確定如何從類內部使用setContentView(),在此處我擴展View並掛接到onDraw()以執行動畫將需要單獨發佈)。

如果我能弄清楚如何自己旋轉圖像,我確實可以取消可繪製的* - land和* -port目錄。

回答

3

您可以定位drawable,而不僅僅是佈局。第一種情況(假設您讓系統處理旋轉事件並重新創建活動)需要drawable-hdpi-large-long-land,第二種情況爲drawable-mdpi-xlarge

當然,嘗試爲每個可能的手機分辨率提供單獨的圖像是徒勞的;部分原因是有很多你需要的,部分是因爲有些目標是不可區分的(例如,854x480和800x480手機都是hdpi-large-long,儘管有54px的差異)。嘗試使用可伸縮圖像,可拉伸的9patch或可以在右上角修復的圖像(您可以使用XML定義的位圖繪製來定義拉伸行爲)。

1

當我旋轉手機Droid 進入橫向模式和 背景不再正確適合。 當我不使用 佈局時,如何告訴應用程序需要使用 風景模式?

如果你還在檢測旋轉,那麼the Device class是要走的路。

其次,當我運行在 Xoom的這個程序,它選擇的MDPI繪製這 無處Xoom的 屏幕的大小接近。如何定義具有1200x800大小的第二個mdpi drawable?

您可以使用各種圖像文件夾,依賴於設備的分辨率:ldpi,mdpi,hdpi或xhdpi。您應該看看the following page,以便正確支持各種分辨率和屏幕尺寸。

1

這就對了。您也可以混合使用肖像,風景和其他修飾符。不要忘記將它們用於繪圖以及佈局(以及任何其他資源目錄)。如果它是相同的佈局和不同的drawable,那麼你只需要將它應用到drawable中。

您需要查看資源目錄的文檔並使用大小和方向目錄修飾符。

例如:

drawable-land-mdpi 
drawable-xlarge-land 
layout-port-mdpi 

並且這樣

有關詳細信息,請參見:

http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

http://developer.android.com/guide/practices/screens_support.html#qualifiers

相關問題