三級快取,二級取樣,螢幕適配
1,三級快取
why?
站在使用者的角度為使用者考慮提高使用者的體驗度,當記憶體中有圖片之後就不再網路中進行下載,節省了圖片展示的時間和流量的耗費。
要了解這個原理手心需要知道連個概念是強引用和若引用的概念
基本的概念:
強引用:
若引用:
儲存的步驟: 記憶體---sd卡--網路下載
再開啟非同步任務下載的時候,如果放入記憶體不成功,那麼則開啟網路進行下載,如果網路下載不成功,則使用的是再sd卡中進行下載和使用。
2,二級取樣
首先在optiions中獲取相應的inJsutBounds寬高邊距的方法折true 儲存的是空的Bitmap
之後在compress()。中再將 inJustBounds寬高邊距的方法設定為false,之後對其進行壓縮儲存
3.螢幕適配
why?
手機版本,系統,螢幕碎片化嚴重,為了不影響app在各個平臺上展示正常,所以要進行螢幕的適配
2,重要概念
螢幕尺寸:英寸為單位,螢幕對角線 的距離。1英寸=2.45cm。
螢幕密度: 每英寸對角線上畫素點的密度 一般在440-460左右
計算eg 10
螢幕解析度: 橫縱方向畫素點的數量 px,以160獨立畫素密度 1px=1
橫豎屏之間的切換
res--》layout-land橫屏
/layout-port-豎屏
layout-large大屏
layout-small 小屏
layout-large-land 大屏且橫屏在andorid5.1以上
----將activity_main之後
layout-sw<**>dp 螢幕最小寬度的限定,手機螢幕寬度最小是600dp
2,圖片
mipmap-**中是用來放置圖片的(只需要做一套就可以 了,主流機型 720*1280 )
mdpi 120dpi-160dpi 比例 1
hdpi 160dpi-240dpi 1.5
xhdpi 240dpi-320dpi 2
xxhdpi 320dpi-480dpi 3
xxxhdpi 480dpi-640dpi 4
桌面圖示的做法和使用:(每個尺寸都需要做,之後放入不同的包中)
mdpi 48*48 比例 1
hdpi 72*72 1.5
xhdpi 96*96 2
xxhdpi 144*144 3
xxxhdpi 196*196 4
3,佈局中使用 wrap_content 和match_parent不自己設定固定具體的dp尺寸()
使用線性不僅僅和相對佈局,不使用絕對佈局,如果使用尺寸的話,使用dimens(res---》values-800*480(相應的手機尺寸)-----》建dimens)
設定dimens的時候每個dimens都得設定屬性,否則的話不會顯示。(在不同的手機中會找到不同的dimens進行適配)
使用.9png圖片: 左上拉伸,右下是內容,交接的地方是顯示圖片的內容區(上邊點點,說明左右拉伸,左邊點上下拉伸,底邊和和右側交叉區域是內容的顯示區域)
.9png圖片的使用:為了保證圖示不變樣,只拉伸存顏色區域的圖片
在 studio中的使用.9png需要放在drawable中進行儲存,之後再進行使用四個邊的點都需要點
在邏輯程式碼中設定(最終的方法)
獲取螢幕的寬高: 控制元件是佔螢幕寬高的比例是多少 mWidth*1/2(控制元件的寬)
百分比的佈局
自己如何做百分比適配:
佈局最外層,使用的是線性佈局,有方向和權重,線性佈局利用權重來分配大小,將其分為各個不同的模組
線性佈局巢狀三層,將其進行巢狀的時候做出來的效果是相同的,之後在微調細節佈局。