ImageView設置background和src的區(qū)別

今天開發(fā)的時候遇到一個小問題,在給一個ImageView更換圖片的時候,我使用的是java的方式更換,使用的方法是setBackgroundResource(),但奇怪的是總是沒有效果。
最后查明原因是:我在編寫xml文件的時候,為了查看效果,給這個ImageView設置了src,這時候再設置background的時候回發(fā)生重疊。
解決方法:將xml中的src刪除即可。

問題延伸:
一、ImageView設置background和src的區(qū)別。
1.src是圖片內容(前景),bg是背景,可以同時使用。
2.background會根據(jù)ImageView組件給定的長寬進行拉伸,而src就存放的是原圖的大小,不會進行拉伸 。
3.scaleType只對src起作用;bg可設置透明度。

二、ImageView幾種不同的設置圖片的方式。
設置background:
1.image.setBackground(getResources().getDrawable(R.drawable.blackk));//變形
2.image.setBackgroundResource(R.drawable.blackk);//變形 3.image.setBackgroundDrawable(getResources().getDrawable(R.drawable.blackk));////變形
源碼:這三種方法的實質都是調用方法3setBackgroundDrawable()。

設置src:
1.image.setImageDrawable(getResources().getDrawable(R.drawable.blackk)); //不會變形
2.Stringpath=Environment.getExternalStorageDirectory()+File.separator+"test1.jpg";
Bitmap bm = BitmapFactory.decodeFile(path);
image.setImageBitmap(bm);//不會變形
3.image.setImageResource(R.drawable.blackk);//不會變形
源碼: 其中方法2就是將bitmap轉換為drawable然后調用方法1,方法1和方法3都是調用updateDrawable()方法。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容