android提供了多個資料夾來解決適配問題,可這會導致應用程式的大小很大,對於ui較多的應用不太可取。
目前大多數應用都是提供了一套hdpi的圖,andorid根據手機螢幕的大小是會做自動適配的。
如果你想讓這些改變更可控,可以嘗試如下做法。
做一套符合當前主流手機的圖(比如以800寬的螢幕為基準的)。盡量做hdpi或者xhdpi的圖 ,以免縮放時丟失畫素。
首先通過如下方法獲取當前手機的寬高。
final displaymetrics displaymetrics = new displaymetrics();
getwindowmanager().getdefaultdisplay().getmetrics(displaymetrics);
final int height = displaymetrics.heightpixels;
final int width = displaymetrics.widthpixels;
再通過如下的工具類,根據當前手機的寬高,算出需要縮放的比例。
public class adaptationclass
public int changeimage(int w)
如果的寬是415畫素,那麼在設定寬度的時候呼叫即可自動轉換成適應當前螢幕的畫素值。的寬出來後,高度可以根據的寬高比算出。
layoutparams lp = new layoutparams(changeimage(415),changeimage(415)*高寬比);
或者layoutparams lp = new layoutparams(changeimage(415),changeimage(高度));
imageview imageview = new imageview(this);
imageview.setlayoutparams(lp);
對於高度較大的,可以考慮放在scrollview中,以免有些手機顯示不全。
有些直接設為background,在不同的解析度下會變形。
可以考慮通過framelayout中放imageview的方式解決。(imageview的寬高可通過設定layoutparam在程式中根據手機螢幕大小動態生成)
應用的歡迎介面可以採用純色背景+imageview實現,imageview的scaletype設為centerinside,純色邊界可以很大程度規避顯示不全的問題。
jpg格式要比png的小很多,所以在沒有透明要求的情況下盡量使用jpg格式。
android多解析度適配
前一階段開發android專案,由於客戶要求進行多解析度適配,能夠支援國內主流的解析度手機。因此經過了幾次開發走了很多彎路,目前剛剛領略了android多解析度適配的一些方法。先介紹一下所走的彎路,由於android的布局檔案存放在res的layout中,可以根據不同的手機解析度指定特定的layou...
Android 多解析度適配
標籤 android 適配多解析度 布局檔案 layout 2014 05 28 15 18 9946人閱讀收藏 舉報 android 3 前一階段開發android專案,由於客戶要求進行多解析度適配,能夠支援國內主流的解析度手機。因此經過了幾次開發走了很多彎路,目前剛剛領略了android多解析度...
android多解析度適配
前一階段開發android專案,由於客戶要求進行多解析度適配,能夠支援國內主流的解析度手機。因此經過了幾次開發走了很多彎路,目前剛剛領略了android多解析度適配的一些方法。先介紹一下所走的彎路,由於android的布局檔案存放在res的layout中,可以根據不同的手機解析度指定特定的layou...