3

我有一個水平滾動視圖,裏面有一個ImageView。此imageview具有高寬度和低高度的位圖。位圖ImageView,在Horizo​​ntalScrollView中。如何使Horizo​​ntalScrollView高度與位圖匹配?

我想要位圖填充水平滾動視圖的高度,我想從左到右滾動位圖。

我試過使用這段代碼,但它不起作用。它在左側和右側創建兩個空間,這些空間是黑色的。這些空間來自ImageView ...所以...位圖的寬度小於ImageView

 HorizontalScrollView wvScroll = new HorizontalScrollView(this); 
     wvScroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     iv.setImageBitmap(Util.getRemoteImage("http://mywebsite.com/90.gif")); 
     //iv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     iv.setScaleType(ScaleType.CENTER_INSIDE); 
     iv.setBackgroundColor(Color.BLACK); 
     wvScroll.addView(iv); 
     wvScroll.setBackgroundColor(Color.GREEN); 
     mainLayout.addView(wvScroll); 

我在做什麼錯了?我也嘗試了iv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));,但它不起作用,結果相同。

編輯:

我也tryed與ScaleType.CENTER_CROP,並沒有正常工作。位圖比ImageView具有更高的高度,因爲一些像素在位圖的頂部和底部丟失。

+0

很多時候,如果視圖比圖像大,你想設置'android:adjustViewBounds'或'setAdjustViewBounds(boolean)'爲true以使邊界包裹圖像內容。這應該擺脫你看到的黑色空間。 –

+0

哦......不幸的是它不起作用......現在我在位圖的頂部和底部有黑色空格 – Pableras84

+0

右邊,表示您的圖像比Horizo​​ntalScrollView的實際高度要小,這意味着您要*放大*你的圖像在運行時(我有點錯過了這個問題)。唯一能夠進行放大的縮放類型是「FIT_XY」,但爲了正常工作,您需要爲ImageView設置正確的尺寸。換句話說:計算圖像和ImageView的大小(保持縱橫比等)並相應地調整佈局參數。 –

回答

0

如果我不得不以最簡單的方式來解決這個問題。 我會設置滾動視圖的寬度與屏幕寬度相同。高度並不重要,因爲你認爲高度適合屏幕(至少這是我從你的問題中收集的)。

我記得scroll-views會滾動比實際屏幕更大的東西,或者大於指定的滾動寬度或滾動高度的東西。

這可能會幫助你開始獲得可觀的屏幕尺寸 -Get Screen width and height

當然,因爲不同的設備有不同的屏幕大小 - 你必須這樣做「親語法」。

請問這種實施方式適合您嗎?

相關問題