鏈夋椂鍊欙紝鎴戜滑涓轟簡鍦ㄤ竴涓狪mageView涓樉紺轟笉鍚岀殑鍥劇墖錛屽線寰浼?xì)鋴社敤锛?xì)
if (鏉′歡1)
{
image.setBackground(R.id.xxx1);
}
else if (鏉′歡2)
{
image.setBackground(R.id.xxx2);
}
...
鍙互鐢ㄥ彟涓涓畝渚跨殑鏂規(guī)硶瀹炵幇鐩稿悓鐨勫姛鑳?
棣栧厛錛屽湪res/drawable涓嬪緩绔嬩竴涓獂ml鏂囦歡錛屽唴瀹瑰涓?
<level-list
xmlns:android='
<item android:maxLevel='0' android:drawable='@drawable/battery_0'
/>
android:drawable='@drawable/battery_1' />
android:maxLevel='2' android:drawable='@drawable/battery_2'
/>
android:drawable='@drawable/
1銆佸皢鍥劇墖杞寲涓虹緝鐣ュ浘鍐嶅姞杞斤細(xì)
1 BitmapFactory.Options options = new BitmapFactory.Options(); 2 options.inSampleSize = 2; 3 Bitmap img = BitmapFactory.decodeFile("/sdcard/1.png", options);
璇ユ浠g爜鍗蟲槸璇誨彇1.png鐨勭緝鐣ュ浘錛岄暱搴︺佸搴﹂兘鍙湁鍘熷浘鐗囩殑1/2銆傚浘鐗囧ぇ灝忓噺灝戯紝鍗犵敤鐨勫唴瀛樿嚜鐒朵篃鍙樺皬浜嗐傝繖涔堝仛鐨勫紛绔槸鍥劇墖璐ㄩ噺鍙樺樊錛宨nSampleSize鐨勫艱秺澶э紝鍥劇墖鐨勮川閲忓氨瓚婂樊銆傜敱浜庡悇鎵嬫満鍘傚晢緙╂斁鍥劇墖鐨勭畻娉曚笉鍚岋紝鍦ㄤ笉鍚屾墜鏈轟笂鐨勭緝鏀懼浘鐗囪川閲忓彲鑳戒細(xì)涓嶅悓銆傜瑪鑰呭氨閬亣榪噈oto鎵嬫満涓婂浘鐗囩緝鏀懼悗璐ㄩ噺鍙互鎺ュ彈錛屼笁鏄熸墜鏈轟笂鍚屾牱鐨勭緝鏀炬瘮渚嬶紝璐ㄩ噺鍗村樊寰堝鐨勬儏鍐點(diǎn)?/p>
2銆佺敤ARBG_4444棰滆壊妯″紡鍔犺澆鍥劇墖錛?/strong>
Android涓湁鍥涚錛屽垎鍒槸錛?/p>
ALPHA_8錛氭瘡涓儚绱犲崰鐢?byte鍐呭瓨
ARGB_4444:姣忎釜鍍忕礌鍗犵敤2byte鍐呭瓨
ARGB_8888:姣忎釜鍍忕礌鍗犵敤4byte鍐呭瓨
RGB_565:姣忎釜鍍忕礌鍗犵敤2byte鍐呭瓨
Android榛樿鐨勯鑹叉ā寮忎負(fù)ARGB_8888錛岃繖涓鑹叉ā寮忚壊褰╂渶緇嗚吇錛屾樉紺鴻川閲忔渶楂樸備絾鍚屾牱鐨勶紝鍗犵敤鐨勫唴瀛樹篃鏈澶с?/p>
1 BitmapFactory.Options options = new BitmapFactory.Options(); 2 options.inPreferredConfig = Bitmap.Config.ARGB_4444; 3 Bitmap img = BitmapFactory.decodeFile("/sdcard/1.png", options);
浠ヤ笂浠g爜鍗蟲槸灝?.png浠RGB_4444妯″紡璇誨嚭銆傚唴瀛樺噺灝戣櫧鐒朵笉濡傜涓縐嶆柟娉曟槑鏄撅紝浣嗘槸瀵逛簬澶у鏁板浘鐗囷紝鐪嬩笉鍑轟笌ARGB_8888妯″紡鏈変粈涔堝樊鍒備笉榪囧湪璇誨彇鏈夋笎鍙樻晥鏋滅殑鍥劇墖鏃訛紝鍙兘鏈夐鑹叉潯鍑虹幇銆傚彟澶栵紝浼?xì)濯勫搷鍥剧墖鐨勭壱?guī)晥澶勭悊銆?/p>
3銆佽皟鐢ㄥ浘鐗囩殑recycle()鏂規(guī)硶錛?/span>
榪欎釜鍏跺疄涓嶆槸鐪熸闄嶄綆鍥劇墖鍐呭瓨鐨勬柟娉曘備富瑕佺洰鐨勬槸鏍囪鍥劇墖瀵硅薄錛屾柟渚垮洖鏀跺浘鐗囧璞$殑鏈湴鏁版嵁銆傚浘鐗囧璞$殑鏈湴鏁版嵁鍗犵敤鐨勫唴瀛樻渶澶э紝鑰屼笖涓庣▼搴廕ava閮ㄥ垎鐨勫唴瀛樻槸鍒嗗紑璁$畻鐨勩傛墍浠ョ粡甯稿嚭鐜癑ava
heap瓚沖浣跨敤錛岃屽浘鐗囧彂鐢烵utOfMemoryError鐨勬儏鍐點(diǎn)傚湪鍥劇墖涓嶄嬌鐢ㄦ椂璋冪敤璇ユ柟娉曪紝鍙互鏈夋晥闄嶄綆鍥劇墖鏈湴鏁版嵁鐨勫嘲鍊鹼紝浠庤屽噺灝慜utOfMemoryError鐨勬鐜囥備笉榪囪皟鐢ㄤ簡recycle()鐨勫浘鐗囧璞″浜?#8220;搴熷純”鐘舵侊紝璋冪敤鏃朵細(xì)閫犳垚紼嬪簭閿欒銆傛墍浠ュ湪鏃犳硶淇濊瘉璇ュ浘鐗囧璞$粷瀵逛笉浼?xì)琚啀娆¤皟鐢ㄧ殑鎯呭喌涓嬪Q屼笉寤鴻浣跨敤璇ユ柟娉曘傜壒鍒娉ㄦ剰宸茬粡鐢╯etImageBitmap(Bitmap
img)鏂規(guī)硶鍒嗛厤緇欐帶浠剁殑鍥劇墖瀵硅薄錛屽彲鑳戒細(xì)琚郴緇熺被搴撹皟鐢紝閫犳垚紼嬪簭閿欒銆?/p>
4銆佷嬌鐢∕atrix瀵硅薄鏀懼ぇ鐨勫浘鐗囧浣曟洿鏀歸鑹叉ā寮忥細(xì)
铏界劧浣跨敤Matrix瀵硅薄鏀懼ぇ鍥劇墖錛屽繀瀹氫細(xì)鑰楄垂鏇村鐨勫唴瀛橈紝浣嗘湁鏃跺欎篃涓嶅緱涓嶈繖鏍峰仛銆傛斁澶у悗鐨勫浘鐗囦嬌鐢ㄧ殑ARGB_8888棰滆壊妯″紡錛屽氨綆楀師鍥劇墖鏄疉RGB_4444棰滆壊妯″紡涔熶竴鏍鳳紝鑰屼笖娌℃湁鍔炴硶鍦ㄦ斁澶ф椂鐩存帴鎸囧畾棰滆壊妯″紡銆傚彲浠ラ噰鐢ㄤ互涓嬪姙娉曟洿鏀瑰浘鐗囬鑹叉ā寮忋?/p>
Matrix matrix = new Matrix(); float newWidth = 200;//鍥劇墖鏀懼ぇ鍚庣殑瀹藉害 float newHeight = 300;//鍥劇墖鏀懼ぇ鍚庣殑闀垮害 matrix.postScale(newWidth / img.getWidth(), newHeight/ img.getHeight()); Bitmap img1 = Bitmap.createBitmap(img, 0, 0, img.getWidth(), img.getHeight(), matrix, true);//寰楀埌鏀懼ぇ鐨勫浘鐗?/span> img2 = img1.copy(Bitmap.Config.ARGB_4444, false);//寰楀埌ARGB_4444棰滆壊妯″紡鐨勫浘鐗?/span> img = null; img1 = null;