AndroidDev 板


LINE

※ 引述《Ferich (純粹的透明)》之銘言: : 在前幾篇 看到兩位大大在討論 : 我還是有很大的疑問 : 目前 手上測試的手機是 : xperia s 1280X720 4.3吋 PPI 312.47 : Nexus 7 1280X800 7.3吋 PPI 206.77 上述PPI我想指的是實際螢幕解析度/吋算出來的值, 由於我手上沒機台,我推論實務上 Xperia s在Android系統環境會設定為320dpi (xhdpi) Nexus 7會設為213 (tvdpi) 因此可計算出這兩台的螢幕大小分別為 Xperia s 640dpX360dp Nexus 7 960dpX600dp PS:使用Android所定義的dp單位在設計與開發上是最好的作法。 : 用的套圖是 xhdpi的那個資料夾內的圖 : 圖是用1280X720 下去製作的 : 顯示都是正常 : 但是 放到 N7上 卻不是因為PPI縮小而變大 : 而是變成只要是warp_content的圖 都變成只有相當於畫面的1/2 : 也就是說 在xs上滿版的圖 in N7上 都只有幾乎一半大 : 後來用PhotoShop測試 居然要1920X1280的圖 在N7上 才會幾乎是滿版 這段話並不正確, 只有Xperia s是使用drawable-xhdpi內的圖, 而Nexus 7會使用drawable-tvdpi內的圖, 我這邊先假設你App內沒有提供drawable-tvdpi的圖檔, 不過沒關係,Android很聰明的會先尋找高解析度的圖檔, 並自動縮小到tvdpi應有的圖檔大小。 (若沒高解析度的圖檔,才使用低解析度的圖並放大到tvdpi應有的圖檔大小) 一定要知道圖檔被使用的情況是下列的哪一種, 1.該View不會動態變動大小,例如icon。 2.該View會動態調整大小,例如使用在background for case 1 假設要顯示一個80dpX80dp的icon在畫面上,該icon的圖檔應該多大? 根據解析度不同,所需的圖檔大小也不同, 因此各個目錄裡面圖檔大小如下所列.. drawable-xhdpi 160pxX160px drawable-hdpi 120pxX120px drawable-tvdpi 106pxX106px drawable-mdpi 80pxX80px drawable-ldpi 60pxX60px 若能掌握住此原則,在寫layout xml時, 該ImageView的layout_width和layout_height只要使用wrap_content即可, 不用指定80dp,這樣彈性會比較大。 for case 2 假設是使用在View的background, 且該View內容會動態改變大小, (ex..layout_width/layout_height設wrap_content或match_parent) 請務必使用9-patch圖檔,相關訊息請參閱 http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch http://developer.android.com/tools/help/draw9patch.html 9 patch圖也是需要依據不同解析度來放置不同大小的9 patch,基本概念與case1相同。 : 問題1. xs 與 N7 螢幕解析度差不多 只是因為吋數 讓PPI不同 : 同一套圖 為何差異性大 如同上述 Xperia s 640dpX360dp Nexus 7 960dpX600dp 這兩個螢幕大小完全不同,因此不可這樣相比。 : 問題2. 目前市面上的平板解析度百百種 Nexus10 2560X1600 Sony Z table 1920X1200 : 在如此過高的解析度下 就得靠 screen size的方式來區分 而非 dpi資料夾了嗎? screen size跟drawable-<l/m/h/tv/xh/>dpi資料夾完全沒關係, 千萬不要把這兩個混在一起看了。 Android中screen size指的是螢幕大小,並非指解析度。 (因為有很高解析度但螢幕很小的情況,反之亦然) Android使用dp單位來來當單位長度,因此可以使用dp來解釋螢幕大小 160dp = 1吋 ,因為dp是以 mdpi(160dpi, 1吋有160px)為基準, 在mdpi的狀況下,1dp = 1px。 以你提的兩個例子, 可分別算出螢幕大小為 Nexus10(xhdpi) 1280dpX800dp Sony Z table(hdpi) 1280dpX800dp 因此這兩台螢幕是一樣大的。 : 問題3. 有無可以盡量 等比放大的設定啊~ 看起來解析度差沒關係 : 只要版面不要跑掉. 通常不會這樣設計介面... 我認為一般有水準以上的app大致會區分 手機、7吋平板/手機、10吋平板並分別設計layout 以小於600dp為手機介面 以大於等於600dp(sw600dp)小於800dp為7吋平板手機介面 以大於等於800dp(sw800dp)為10吋平板介面 : 問題4. 在上述的例子中 N7 1280X800 7.3吋的ui滿版 要用1920X1280的原因是... : 這樣在設計上 很難捉模 ui應有的尺寸. 首先要有個認知就是, 在相同螢幕大小手機中,會有各種不同的解析度, 連10吋平板解析度都很有可能小於手機的解析度。 因此 只要把一般的圖檔以及用在background的圖檔的使用方式/時機弄清楚, 配合有彈性的介面/layout設計, 開發Android layout應該是很輕鬆愉快的啦~ : 感謝看完 請鞭 : 以上. --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.92.63







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP