首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android ViewPager 中 ImageView 填充父容器失效的解決方法:設置 ScaleType

     編輯:程式設計疑難解答

問題描述

在 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);

ScaleType 選擇指南

類型行為適用場景
FIT_XY非等比拉伸填滿背景圖、佔位圖、不關心比例
CENTER_CROP等比縮放並裁剪填滿圖片牆、頭像、保證無留白
FIT_CENTER等比縮放居中(默認)完整展示圖片內容

效果對比

加上 setScaleType(FIT_XY) 後,圖片完美鋪滿整個 ViewPager 頁面,無任何邊距。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved