所以我有這個任務來創建一個圖像按鈕的水平滾動陣列,基本上是用戶的照片頭像。這些化身不受長寬比或大小的限制,所以我一直在玩弄縮放和格式化的方式。我已經通過scaletype =「fitCenter」並使用靜態寬度和高度將它們縮放。但我真正想讓他們做的是互相對抗。目前,如果圖像高於高度,則可以使用letterboxing,但在側面與頂部(空白區域)對齊。我已經嘗試了所有不同的縮放比例值,將每個圖片包裹在一個線性佈局等內,但我沒有試過似乎擺脫這些(同時顯示整個圖像以縮放比例)。有沒有辦法做到這一點?在Android中縮放/格式化多個圖像按鈕陣列
回答
只是爲了重申一下,我認爲你做的,你有三種圖像場景:
- 廣場形象
- 景觀圖像(不是高大寬)(比寬高)
- 人像圖像
使用FIT_CENTER佈置一排固定尺寸的ImageViews(或ImageButtons)對於您所需要的圖像很有用,如果所有圖像都是正方形或橫向的,因爲縮放總是會使圖像伸展到視圖的水平邊界(最大尺寸)。但是,使用縱向圖像時,縮放會使視圖位於固定大小視圖的邊界內,以便可以看到整個圖像高度。
如果您需要保持圖像的寬高比,實際上沒有ScaleType來幫助解決這個問題,因爲邏輯將是圓形的(適合圖像的視圖,同時使圖像適合視圖)。解決方案是調整每個ImageView的大小(特別是寬度),以匹配圖像將縮放的大小。下面是一個工廠方法的示例,您可以使用它來生成ImageView以適應要放入其中的圖像。你也可以修改這個稍微對現有的ImageView重置參數,如果你喜歡:
private ImageView getImageViewForThumbnail(Bitmap thumbnail) {
float viewHeight = //Your chosen fixed view height
float scale = ((float)thumbnail.getHeight())/viewHeight;
float viewWidth = thumbnail.getHeight()/scale;
ImageView view = new ImageView(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams((int)viewWidth, (int)viewHeight);
view.setLayoutParams(params);
view.setScaleType(ScaleType.FIT_XY);
view.setImageBitmap(thumbnail);
return view;
}
你基本上只是計算的ImageView方面寬度應該是什麼,以配合您所選擇的所有固定的高度其中。
HTH
謝謝,我擔心這將是唯一真正的方法。 –
使用scaleType fitXY
,它會將圖像拉伸到您分配的佈局參數(如果圖像的維數較少並且還會將圖像縮小爲您分配的佈局參數(如果圖像較大)。關鍵是要提到imageView的圖像佈局參數,即圖像的寬度和高度。
好的,我試過fitXY,但它不能正確縮放圖像。問題是我正在爲圖像尺寸(或圍繞它的線性佈局)輸入靜態值,我想我的問題是,是否有任何方法來縮放這些圖像而不在右側或左側添加空間(對於肖像圖像)或頂部和底部(對於風景圖片),但不知道圖像的尺寸是什麼?我們是否需要編寫一些代碼來查看圖像屬性,然後計算適當的寬度以使比例尺正確? –
我想你應該嘗試將靜態值分配給imageView,根據文檔,「fitXY」應該可以工作,如果你想讓圖像在x和y上獨立縮放,請檢查這兩個鏈接。http://developer.android.com/reference/android/小部件/ ImageView.ScaleType.html使用FILL描述在這裏http://developer.android.com/reference/android/graphics/Matrix.ScaleToFit。html#FILL –
- 1. Android圖像按鈕格式
- 2. 的Android圖像按鈕縮放/尺寸
- 3. 縮放圖像陣列Java
- 4. 匹配縮放圖像視圖按鈕
- 5. 在android中變化的圖像按鈕
- 6. Android:在圖像按鈕上拉伸/縮放時遇到問題
- 7. 按鈕不縮放與圖像?
- 8. iOS:使用按鈕縮放圖像
- 9. 在陣列中格式化
- 10. 使用Javascript縮放/縮放多個圖像的最佳方式?
- 11. 在android中的圖像按鈕樣式
- 12. 圖像縮放像素化
- 13. 觸摸Android縮放按鈕
- 14. Android按鈕不縮放
- 15. Android圖像按鈕樣式
- 16. android中的縮放圖像
- 17. 在Android上縮放圖像
- 18. 按鈕陣列(Android)
- 19. 格式化一個陣列
- 20. 優化縮放圖像的方式
- 21. 按鈕上的「放大/縮小」圖像點擊Android?
- 22. 谷歌地圖中的縮放按鈕在Android中未顯示
- 23. 在Android中使用矩陣旋轉和縮放圖像
- 24. Android縮放位圖圖像
- 25. android多點觸摸圖像縮放?
- 26. 縮放一個圖像,這是一個按鈕的背景
- 27. C#如何在按鈕陣列按鈕上添加圖像
- 28. 如何在按鈕中縮小圖像
- 29. 在Xcode中縮放圖像和佈局按鈕
- 30. 縮放按鈕
此外,還有一個寬於高的頂部/底部字母框。我的靜態寬度和高度是相同的。 –