设置背景图时防止图片拉伸的解决方法
在設(shè)置背景圖時(shí),如果圖片不夠大會(huì)被拉伸,使圖片失真,如果圖片太大會(huì)對(duì)view控件的顯示造成影響。
如果只是在ImageView中設(shè)置圖片的話,在程式中可以利用setScaleType進(jìn)行動(dòng)態(tài)設(shè)定,在xml中可以簡(jiǎn)單的用android:scaleType來(lái)設(shè)定。
(android:scaleType="CENTER_INSIDE" 圖片比View小,圖片不會(huì)拉伸
?android:scaleType="CENTER_CROP"? 圖片比View大,View不被拉伸? 其他屬性的設(shè)置以后慢慢在研究。)
現(xiàn)在要作的是設(shè)置LinearLayout的background時(shí)如何讓圖片自適應(yīng)屏幕的大小,包含屏幕旋轉(zhuǎn)時(shí)的調(diào)整。
程式代碼如下:
調(diào)用方法為:
try {Drawable image = createImage(imageFile);background.setBackgroundDrawable(image);} catch (Exception e) {Log.e("Exception", e.toString());return false;}//===========================================================================
在上面的程式中用到了Matrix進(jìn)行圖片的放大和縮小。
使用BitmapFactory.decodeStream的option的話只能放大或縮小整數(shù)倍(使用方法在其他文章中有介紹了)
Matrix的功能非常強(qiáng)大,不止可以放大縮小,還可以設(shè)置透明度等,Matrix的操作,總共分為translate(平移),rotate(旋轉(zhuǎn)),scale(縮放)和skew(傾斜)四種。
具體使用方法參考網(wǎng)址:
http://blog.csdn.net/hui_ttoo/article/details/6202762
http://liliang1222.iteye.com/blog/1152474
http://www.moandroid.com/?p=1781
http://www.cnblogs.com/leon19870907/articles/1978065.html
http://www.r-base.net/archives/148
http://my.oschina.net/amigos/blog/59598
// ==========================================================================
使用到了Canvas用來(lái)根據(jù)之前的圖片的縮放比例配合背景畫一張新的背景圖,用來(lái)顯示。
具體用法可以參考網(wǎng)址。
http://aina-hk55hk.iteye.com/blog/690921
// ==========================================================================
另外在查資料過(guò)程中,還發(fā)現(xiàn)另一種制作圖片效果的用法。
參考網(wǎng)址:http://blog.csdn.net/pgmsoul/article/details/7073332
可以實(shí)現(xiàn)圖片平鋪(TileMode.REPEAT)和倒影效果(TileMode.MIRROR),在setTileModeXY中設(shè)置不同的參數(shù)。
還有另外一種TileMode.CLAMP,邊緣拉伸效果,不知道在什么情況下會(huì)用到。
// =========================================================================
另外在制作背景圖時(shí),可以利用draw9patch來(lái)制作不失真背景。
例如textView添加邊框,可以利用.9.png。
具體可以參考網(wǎng)址:http://archive.cnblogs.com/a/2017591/
轉(zhuǎn)載于:https://www.cnblogs.com/sipher/archive/2012/07/03/2575264.html
總結(jié)
以上是生活随笔為你收集整理的设置背景图时防止图片拉伸的解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 反对继承
- 下一篇: 【转】 IIS_WPG 用户组权限问题