正文
一、结构
java.lang.Object
↳
android.view.View
↳
android.widget.ImageView
已知直接子类:
ImageButton, QuickContactBadge
已知间接子类:
ZoomButton
二、类概述
显示任意图像,例如图标。
ImageView
类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项。
三、XML属性
属性名称
|
描述
|
android:adjustViewBounds
|
是否保持宽高比。需要与
maxWidth、
MaxHeight一起使用,否则单独使用没有效果。
|
android:cropToPadding
|
是否截取指定区域用空白代替。单独设置无效果,需要与
scrollY一起使用,效果如下,实现代码见代码部分:
|
android:maxHeight
|
设置
View的最大高度,单独使用无效,需要与
setAdjustViewBounds一起使用。如果想设置图片固定大小,又想保持图片宽高比,需要如下设置:
1)
设置
setAdjustViewBounds为
true;
2)
设置
maxWidth、
MaxHeight;
3)
设置设置
layout_width和
layout_height为
wrap_content。
|
android:maxWidth
|
设置
View的最大宽度。同上。
|
android:scaleType
|
设置图片的填充方式。
matrix
|
0
|
用矩阵来绘图
|
|
fitXY
|
1
|
拉伸图片(不按比例)以填充
View的宽高
|
layout_
height
:30px
layout_
width
:120px
|
fitStart
|
2
|
按比例拉伸图片,拉伸后图片的高度为
View的高度,且显示在
View的左边
|
fitCenter
|
3
|
按比例拉伸图片,拉伸后图片的高度为
View的高度,且显示在
View的中间
|
fitEnd
|
4
|
按比例拉伸图片,拉伸后图片的高度为
View的高度,且显示在
View的右边
|
center
|
5
|
按原图大小显示图片,但图片宽高大于
View的宽高时,截图图片中间部分显示
|
layout_
height
:60px
layout_
width
:80px
padding
:10px
|
centerCrop
|
6
|
按比例放大原图直至等于某边
View的宽高显示。
|
centerInside
|
7
|
当原图宽高或等于
View的宽高时,按原图大小居中显示;反之将原图缩放至
View的宽高居中显示。
|
|
android:src
|
设置
View的
drawable(如图片,也可以是颜色,但是需要指定
View的大小
)
|
android:tint
|
将图片渲染成指定的颜色。见下图:
左边为原图,右边为设置后的效果,见后面代码。
|
分享到:
相关推荐
在Android开发中,`ImageView`是用于展示图片的常用组件,它允许我们加载本地或网络上的图像,并提供了基本的图片处理功能。当我们需要对图片进行更复杂的操作,如缩放、旋转或者显示加载进度时,就需要自定义`...
在Android开发中,ImageView是用于显示图像的常见组件,但默认情况下,它的显示方式由`scaleType`属性控制,如center、centerCrop、fitXY等。然而,这些内置的缩放类型可能无法满足某些特定需求,例如仅显示图片的某...
本教程将详细讲解如何实现Android手势控制ImageView图片大小的功能。 首先,我们需要创建一个自定义的ImageView子类,例如`MatrixImageView`。这个类继承自`ImageView`,并添加了对手势识别的支持。在`...
此外,`adjustViewBounds`属性可以控制`ImageView`是否根据图片的宽高比调整自身的大小。 在Android中,`ImageView`是展示图片的核心组件,其丰富的功能和便捷的使用方式使其在应用开发中不可或缺。通过理解和掌握`...
如果在某些情况下,我们需要进一步控制ImageView的高度,可以使用`ScaleType`属性。Android提供了多种图片缩放类型,如`center`、`centerCrop`、`centerInside`、`fitCenter`、`fitEnd`、`fitStart`和`fitXY`等。...
ImageView可以设置为固定大小或根据图片大小自动调整。为了实现图片的缩放,通常我们需要自定义一个ImageView子类,重写onMeasure()方法,使ImageView能够根据图片内容进行自适应缩放。例如,我们可以使用CENTER_...
- **尺寸调整**:通过`android:scaleType`属性控制图像如何适应ImageView的大小,例如`centerCrop`、`fitCenter`等。 2. **图像适配**: - **九宫格(Nine-Patch)图像**:对于需要拉伸的图像,可以使用9-patch...
在实际开发中,理解ImageView的这些内部机制有助于我们更好地控制图片的显示效果,例如,通过自定义ImageView实现特定的缩放和旋转动画,或者优化图片加载以提高应用性能。通过对源码的深入学习,开发者可以更灵活地...
对于方形`ImageView`,实现起来相对简单,只需要在`onDraw()`中调用`canvas.clipRect()`,设置一个与视图大小相同的矩形区域即可。 至于星形`ImageView`,情况会稍微复杂些。因为星形不是简单的几何形状,所以需要...
3. **android:adjustViewBounds**:当设置为`true`时,ImageView的边界会根据`android:src`的大小自动调整,以保持图像的原始比例。默认为`false`。 4. **android:cropToPadding**:当设置为`true`时,ImageView的...
2. `android:adjustViewBounds`:如果为true,ImageView将根据图像的宽高比调整其大小,以保持原始比例。 3. `android:layout_width`和`android:layout_height`:定义ImageView的尺寸,可以设置为具体像素值(dp)...
在安卓(Android)开发中,`ImageView`是一个非常基础且重要的组件,它用于显示图片资源。这个`Android源码——imageView....通过对`ImageView`的深入学习,开发者可以更好地控制和优化图片显示,提升应用的用户体验。
例如,可以使用`BitmapFactory.Options`来控制图片的解码大小,避免加载全尺寸的图片到内存中。 - 使用`Matrix`进行变换而非直接改变图片的大小,因为直接改变大小可能会导致内存消耗增加。 7. **兼容性考虑** - ...
2. **Matrix操作**: 更精细的缩放控制可以通过修改ImageView的Matrix实现。Matrix是一个二维变换矩阵,可以进行平移、旋转、缩放等多种操作。当我们需要实现手势缩放时,通常会监听手势事件,根据手势的缩放比例更新...
为优化,可以考虑减少帧数,或者使用矢量图形(VectorDrawable)来减小资源大小。此外,还可以通过调整`android:duration`来控制动画速度,使其看起来更流畅。 5. **处理屏幕旋转**:当应用屏幕方向发生变化时,...
为了避免内存溢出,我们可以使用BitmapFactory.Options来控制图片解码的大小,或者使用LruCache或 Glide 这样的库来缓存和管理图片。 6. **布局适配**:在实现点击缩放时,要考虑布局的整体适应性。可能需要调整...
本文将深入探讨如何使用ImageView来显示图片,并介绍如何通过按钮控制图片的切换,实现简单的图片浏览功能。 首先,让我们了解ImageView的基本用法。在Android布局文件中,我们可以创建一个ImageView并设置其属性,...
除了`scaleType`,我们还可以通过其他属性来调整ImageView的行为,例如`adjustViewBounds`,如果设置为`true`,则ImageView的边界会根据`scaleType`和图像的原始尺寸自动调整,而不是固定在布局文件中定义的大小。...
1. 使用`android:adjustViewBounds="true"`,使ImageView根据图片的实际比例自动调整大小,避免浪费内存。 2. 结合使用`android:scaleType`和`android:cropToPadding="false"`,减少不必要的裁剪和绘制。 3. 使用第...