ImageView设置了match_parent无法充满父布局解决方案

本文介绍了一个常见的ImageView填充不满的问题及原因分析。通过调整scaleType属性为fitXY来解决图片无法完全填充的问题。

ImageView设置如下:

<ImageView
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:src="@drawable/game_card_gray"/>

却发现图片宽度怎么也填充不满,刚开始还以为是哪里设置了padding,排查后却没有,最后搜索一番才发现ImageView默认的scaleType是fitCenter(详情可移步这篇博客:http://www.jianshu.com/p/32e335d5b842)。
fitCenter意思是将图片按比例扩大(或缩放)到视图的宽(或高)然后居中显示,而你设置了ImageView固定高度,导致图片只能放大到与之匹配的宽度。
解决方案:

android:scaleType="fitXY"     //强制拉伸至控件大小
xml代码为:帮我查看问题<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background_gray"> <!--背景--> <ImageView android:id="@+id/background_on" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/on" android:visibility="visible" /> <FrameLayout android:layout_width="180dp" android:layout_height="244dp" android:layout_gravity="center_horizontal" android:layout_marginTop="190dp"> <!-- 背景灯泡 --> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/bulbbottom" /> <!-- 自定义灯泡进度 View --> <com.example.bulbpage.bulbcontrol.LampProgressView android:id="@+id/lampProgressView" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> <!-- 灯泡底座--> <ImageView android:layout_width="180dp" android:layout_height="658dp" android:layout_gravity="center_horizontal" android:src="@drawable/bulbonbottom" app:layout_anchor="@+id/background_on" app:layout_anchorGravity="center" /> <SeekBar android:id="@+id/seekBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginBottom="100dp" android:max="100" android:progress="0" /> <!--开关按钮--> <ImageButton android:id="@+id/switch_button" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center_horizontal" android:layout_marginTop="476dp" android:background="@android:color/transparent" android:scaleType="centerInside" android:src="@drawable/switchselector" /> <!--隐藏栏开关--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="60dp" android:gravity="center" android:orientation="vertical"> <Button android:id="@+id/btn_bottom_sheet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="32dp" android:text="BottomSheet" android:textAllCaps="false" /> </LinearLayout> <!--隐藏toolbar--> <LinearLayout android:id="@+id/ll_bottom_sheet" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:behavior_peekHeight="110dp" app:layout_behavior="@string/bottom_sheet_behavior"> <ImageView android:id="@+id/pull" android:layout_width="match_parent" android:layout_height="30dp" android:background="@color/white" android:clickable="false" android:focusable="false" android:gravity="center" android:paddingTop="15dp" android:src="@drawable/pullselector" /> <TextView android:layout_width="match_parent" android:layout_height="80dp" android:background="@color/white" android:gravity="center" android:text="c" android:textSize="20sp" /> <TextView android:layout_width="match_parent" android:layout_height="80dp" android:background="@android:color/holo_orange_dark" android:gravity="center" android:text="b" android:textSize="20sp" /> <TextView android:layout_width="match_parent" android:layout_height="80dp" android:background="@android:color/holo_green_light" android:gravity="center" android:text="c" android:textSize="20sp" /> <TextView android:layout_width="match_parent" android:layout_height="80dp" android:background="@android:color/holo_orange_dark" android:gravity="center" android:text="b" android:textSize="20sp" /> <TextView android:layout_width="match_parent" android:layout_height="80dp" android:background="@android:color/holo_orange_light" android:gravity="center" android:text="c" android:textSize="20sp" /> </LinearLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
08-19
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical"> <!-- 预览区域,背景为白色 --> <FrameLayout android:id="@+id/previewContainer" android:layout_width="match_parent" android:layout_height="300dp" android:background="#FFFFFF"> <androidx.camera.view.PreviewView android:id="@+id/previewView" android:layout_width="match_parent" android:layout_height="match_parent" tools:ignore="MissingClass" tools:background="@android:color/black" /> </FrameLayout> <!-- 控制按钮 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:gravity="center" android:orientation="vertical"> <Button android:id="@+id/toggleCameraButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="打开摄像头" /> <Button android:id="@+id/openCameraButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:text="拍照" /> <Button android:id="@+id/openViewButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:text="开始录制" /> </LinearLayout> <!-- 媒体显示区域 --> <LinearLayout android:id="@+id/mediaDisplayLayout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="16dp" android:layout_weight="1" android:background="#F5F5F5"> <ImageView android:id="@+id/image" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitCenter" /> </LinearLayout> </LinearLayout>为什么右侧还是没有画面
07-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值