ImageView的android:scaleType属性和 src、Background之前的区别

本文详细解析了Android中ImageView组件的src与background属性的区别,以及android:scaleType属性的使用方法,帮助开发者更好地掌握图片显示和缩放的技术细节。

ImageView中XML属性src和background的区别:

background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容,显示在前面的,background是背景,显示在后边,是背景图,当然可以同时使用。



ImageView 的android:scaleType属性,代码中设置是ImageView.setScaleType(ImageView.ScaleType),用来设置ImageView中图片的缩放方式。这里进行缩放的也是src而不是background.


 
CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
 
CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
 
CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
 
FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示
 
FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
 
FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
 
FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示
 
MATRIX / matrix 用矩阵来绘制


<?xml version="1.0" encoding="utf-8"?> <androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/e" tools:context=".fragment.UserFragment"> <!-- 修正为正确的Fragment类名 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- 顶部用户信息区域 --> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_welcome"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:padding="48dp"> <!-- 用户头像(优化尺寸适配) --> <com.google.android.material.imageview.ShapeableImageView android:id="@+id/iv_avatar" android:layout_width="80dp" android:layout_height="80dp" android:padding="2dp" android:src="@drawable/user_icon" android:scaleType="centerCrop" app:shapeAppearanceOverlay="@style/circleImageStyle" app:strokeColor="#FFFFFF" app:strokeWidth="2dp" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="欢迎您,亲爱的花主" android:textColor="@color/white" android:textSize="18sp" android:textStyle="bold" /> </LinearLayout> </FrameLayout> <!-- 功能列表区域 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:background="@drawable/bg_border" android:orientation="vertical" android:paddingStart="16dp" android:paddingEnd="16dp"> <!-- 我的订单 --> <LinearLayout android:id="@+id/myrecord" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:background="?attr/selectableItemBackground"> <!-- 添加点击反馈 --> <ImageView android:layout_width="24dp" android:layout_height="24dp" android:layout_marginEnd="8dp" android:src="@drawable/ic_order" android:scaleType="centerInside" app:tint="@color/text_hint" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="我的订单" android:textColor="@color/text_hint" android:textSize="14sp" android:textStyle="bold" /> <ImageView android:layout_width="16dp" android:layout_height="16dp" android:src="@drawable/arrow_right" android:scaleType="centerInside" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/divider" /> <!-- 移除冗余分割线(原代码中有重复分割线) --> <!-- 个人信息 --> <LinearLayout android:id="@+id/ll_info" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:background="?attr/selectableItemBackground"> <ImageView android:layout_width="24dp" android:layout_height="24dp" android:layout_marginEnd="8dp" android:src="@drawable/user_icon" android:scaleType="centerInside" app:tint="@color/text_hint" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="个人信息" android:textColor="@color/text_hint" android:textSize="14sp" android:textStyle="bold" /> <ImageView android:layout_width="16dp" android:layout_height="16dp" android:src="@drawable/arrow_right" android:scaleType="centerInside" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/divider" /> <!-- 联系客服 --> <LinearLayout android:id="@+id/ll_contact" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:background="?attr/selectableItemBackground"> <ImageView android:layout_width="24dp" android:layout_height="24dp" android:layout_marginEnd="8dp" android:src="@drawable/ic_contact" android:scaleType="centerInside" app:tint="@color/text_hint" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="联系客服" android:textColor="@color/text_hint" android:textSize="14sp" android:textStyle="bold" /> <ImageView android:layout_width="16dp" android:layout_height="16dp" android:src="@drawable/arrow_right" android:scaleType="centerInside" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/divider" /> <!-- 关于商店 --> <LinearLayout android:id="@+id/ll_about" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:background="?attr/selectableItemBackground"> <ImageView android:layout_width="24dp" android:layout_height="24dp" android:layout_marginEnd="8dp" android:src="@drawable/ic_about" android:scaleType="centerInside" app:tint="@color/text_hint" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="关于商店" android:textColor="@color/text_hint" android:textSize="14sp" android:textStyle="bold" /> <ImageView android:layout_width="16dp" android:layout_height="16dp" android:src="@drawable/arrow_right" android:scaleType="centerInside" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/divider" /> <!-- 退出登录 --> <LinearLayout android:id="@+id/ll_logout" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:background="?attr/selectableItemBackground"> <ImageView android:layout_width="24dp" android:layout_height="24dp" android:layout_marginEnd="8dp" android:src="@drawable/ic_logout" android:scaleType="centerInside" app:tint="@color/text_hint" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="退出登录" android:textColor="@color/text_hint" android:textSize="14sp" android:textStyle="bold" /> <ImageView android:layout_width="16dp" android:layout_height="16dp" android:src="@drawable/arrow_right" android:scaleType="centerInside" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.core.widget.NestedScrollView>这是我fragment_me.xml里的代码,根据你的提示,把它补充完整,我需要完整的代码
最新发布
10-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值