http://blog.csdn.net/wulianghuan/article/details/8644144
國内某金融企業的一道面試題:如何在代碼中獲得一個ImageVIew的高度和寬度?
相信很大一部分人,會直接想到用imageview.getWidth() 和 imageview.getHeight() 來獲得,其實不然。
我們可以自己寫個程式來跑一下,當我們放置一張圖檔在imageView中,并且設定了它的高度和寬度,我們不妨在日志控制台輸出看一下,
Log.i("MainActivity", "寬度:"+String.valueOf(imageView.getWidth()));
Log.i("MainActivity", "高度:"+String.valueOf(imageView.getHeight()));
輸出結果如下:
是不是很惱火呀,結果就是這樣。
那麼究竟該如何擷取圖檔的高度和寬度呢? 其實,我們可以通過建構一個BItMap對象出來,這個BItMap就是從我們的那種圖檔資源轉換而來,bitmap對象中的getWidth() 和getHeight()可以獲得位圖的大小,代碼例子如下:
<span style="white-space:pre"> </span>ImageView imageView = (ImageView)findViewById(R.id.imageView);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.newscar);
Log.i("MainActivity", "寬度:"+String.valueOf(bitmap.getWidth()));
Log.i("MainActivity", "高度:"+String.valueOf(bitmap.getHeight()));
這個時候我們再來看一下日志控制台的輸出結果:
Ok,第一個問題我們搞定了(注意:這是原圖檔的大小,不是我們布局檔案中設定的大小)。
接下來我們看一下如何動态設定圖檔的高度和寬度,這問題比較簡單,我們直接使用LayoutParams的對象來進行設定
代碼如下:
imageView.setImageResource(R.drawable.newscar);
LayoutParams params = imageView.getLayoutParams();
params.height=200;
params.width =100;
imageView.setLayoutParams(params);
本文轉自wanqi部落格園部落格,原文連結:http://www.cnblogs.com/wanqieddy/p/4960244.html如需轉載請自行聯系原作者