在 ViewPager 中動態添加 ImageView,雖然設置 LayoutParams.MATCH_PARENT,但圖片並未鋪滿屏幕,留有空白邊距。
LayoutParams 僅控制 View 在父佈局中的佔用空間,不影響圖片在 ImageView 內部的繪製方式。默認 ScaleType 為 FIT_CENTER,圖片會保持比例縮放居中,導致長寬不足時出現留白。
在創建 ImageView 時額外設置縮放類型:
ImageView imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY); // 關鍵行
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
imageView.setLayoutParams(params);
imageView.setImageResource(resId);
list.add(imageView);
| 類型 | 行為 | 適用場景 |
|---|---|---|
| FIT_XY | 非等比拉伸填滿 | 背景圖、佔位圖、不關心比例 |
| CENTER_CROP | 等比縮放並裁剪填滿 | 圖片牆、頭像、保證無留白 |
| FIT_CENTER | 等比縮放居中(默認) | 完整展示圖片內容 |
加上 setScaleType(FIT_XY) 後,圖片完美鋪滿整個 ViewPager 頁面,無任何邊距。