如何使用代碼動態的獲取和設置ImageView的寬度和高度?

http://blog.csdn.net/wulianghuan/article/details/8644144html

國內某金融企業的一道面試題:如何在代碼中得到一個ImageVIew的高度和寬度?面試

相信很大一部分人,會直接想到用imageview.getWidth() 和 imageview.getHeight() 來得到,其實否則。佈局

咱們能夠本身寫個程序來跑一下,當咱們放置一張圖片在imageView中,而且設置了它的高度和寬度,咱們不妨在日誌控制檯輸出看一下,spa

Log.i("MainActivity", "寬度:"+String.valueOf(imageView.getWidth()));
Log.i("MainActivity", "高度:"+String.valueOf(imageView.getHeight()));.net

輸出結果以下:日誌

 

是否是很惱火呀,結果就是這樣。code

那麼究竟該如何獲取圖片的高度和寬度呢? 其實,咱們能夠經過構建一個BItMap對象出來,這個BItMap就是從咱們的那種圖片資源轉換而來,bitmap對象中的getWidth() 和getHeight()能夠得到位圖的大小,代碼例子以下:xml

 

[html]  view plain copy print ?
 
  1. <span style="white-space:pre">  </span>ImageView imageView = (ImageView)findViewById(R.id.imageView);  
  2.     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.newscar);  
  3.     Log.i("MainActivity", "寬度:"+String.valueOf(bitmap.getWidth()));  
  4.     Log.i("MainActivity", "高度:"+String.valueOf(bitmap.getHeight()));  


這個時候咱們再來看一下日誌控制檯的輸出結果:htm

 

Ok,第一個問題咱們搞定了(注意:這是原圖片的大小,不是咱們佈局文件中設置的大小)。對象

 

接下來咱們看一下如何動態設置圖片的高度和寬度,這問題比較簡單,咱們直接使用LayoutParams的對象來進行設置 

代碼以下:

 

[html]  view plain copy print ?
 
    1. <span style="white-space:pre">  </span>ImageView imageView = (ImageView)findViewById(R.id.imageView);  
    2.     imageView.setImageResource(R.drawable.newscar);  
    3.     LayoutParams params = imageView.getLayoutParams();  
    4.     params.height=200;  
    5.     params.width =100;  
    6.     imageView.setLayoutParams(params);  
相關文章
相關標籤/搜索