2011-05-13 15 views
2

我的應用程序有一個帶有ImageButton的工具欄,我用它作爲應用程序按鈕。我將按鈕的layout_width和layout_height指定爲12mm。 (12mm * 160dpi)/(25.4mm/in)= 75.9pix,在160dpi裝置上。同樣,在240dpi設備上它將是113.4pix。所以,我傾向於使我的mdpi可繪製大約60x60,我的hdpi可繪製大約90x90(以允許一些邊距等)。Android:如何處理不幸的DPI分類設備?

但是,我遇到了像我的三星Galaxy Tab這樣的設備問題。不幸的是,儘管只有170dpi,卻被歸類爲hdpi。在170dpi時,12mm = 80.3pix。但是,因爲它是hdpi,它將使用90x90圖標,這太大了。

我的傾向是放棄ldpi/mdpi/hdpi框架,只是在30x30,40x40,50x50 ... 100x100包裝圖標。並且,在代碼中,根據設備上指定的dpi來選擇使用哪一個(這也是不準確的,但遠不如此)。但是,這似乎很難維持,而且通常效率低下。

有關如何處理這種情況的任何建議?

+1

您可能會發現[此郵件列表中的主題](http://www.mail-archive.com/[email protected]/msg134533.html)非常有趣(儘管不回答您的問題)。 – bigstones 2011-05-13 19:23:45

回答

3

請勿使用毫米和英寸等絕對尺寸單位。使用當前設備的方式,不能依賴它們。只能使用px和dp。

+0

我玩過,但它似乎沒有任何幫助。 12mm背後的想法是按鈕始終是指尖的大小(我的是12毫米)。如果我使用dp,這根本無法完成。例如,如果我使用60dp之類的東西,它將在160dpi設備上使用60個像素,這將呈現爲9.525毫米;而在170dpi的三星Tab設備上,它將使用90pix,這將渲染爲13.44毫米。在160dpi設備上,9.525毫米的尺寸不可用,13.44毫米在Galaxy標籤上明顯過大。 Dpis會工作,如果他們是一個精確的比例,它應該是170/160,而不是1.5 – ab11 2011-05-13 20:29:29

+0

這聽起來像三星基本上決定,他們希望事情看起來非常大的選項卡上。所以,隨它去吧,這是其他應用程序的工作原理和外觀,這是三星公司的設計決定。 http://android-developers.blogspot.com/2010/09/screen-geometry-fun.html – 2011-05-22 20:14:54

+0

忽略Galaxy Tab;它的屏幕使用了非常高的密度,這是Android 3.0之前的妥協,因爲應用程序對額外的空間沒有多大作用。相反,它爲UI提供了相當多的額外空間,但不如預期的那麼多,因爲它使用更高的密度並因此縮放UI。 – hackbod 2011-05-23 05:28:52

相關問題