ImageView 是 Android 中用于显示图像的控件,它功能强大,属性丰富,支持多种图像来源和显示样式。以下是 ImageView 的全部属性及其详细用法。
XML 中 ImageView 的属性
1. 基本属性
属性名 说明 示例值
android:src 设置图片资源 @drawable/ic_launcher
android:background 设置背景颜色或图片 @color/white
android:contentDescription 图片的描述信息(用于无障碍支持) "图片描述"
2. 尺寸和布局属性
属性名 说明 示例值
android:layout_width 宽度 match_parent / wrap_content
android:layout_height 高度 100dp
android:layout_margin 外边距 10dp
android:layout_gravity 控制布局中的对齐方式 center / end
3. 图像缩放相关属性
属性名 说明 示例值
android:scaleType 图片的缩放类型 center, fitCenter, fitXY
android:adjustViewBounds 是否调整视图边界以保持图片宽高比 true
android:maxWidth 最大宽度 200dp
android:maxHeight 最大高度 200dp
android:scaleType 的值详解:
值 说明
center 不缩放图片,保持原尺寸,居中显示
fitCenter 等比例缩放图片至完全显示在视图中
fitXY 拉伸图片以填满视图(可能会变形)
centerCrop 等比例缩放图片,裁剪后填满视图
centerInside 等比例缩放图片,完全显示在视图中,居中显示
4. 颜色处理属性
属性名 说明 示例值
android:tint 设置图片的颜色过滤器 @color/blue
android:tintMode 设置颜色混合模式 src_over, src_in
5. 图像对齐相关属性
属性名 说明 示例值
android:gravity 控制图片内容的对齐方式 center / end / start
6. 其他属性
属性名 说明 示例值
android:alpha 设置透明度,范围 0.0 - 1.0 0.5
android:cropToPadding 图片裁剪是否考虑内边距 true
Java/Kotlin 中的动态用法
基本用法
Java 示例:
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.sample_image);
imageView.setBackgroundColor(Color.WHITE);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
Kotlin 示例:
val imageView: ImageView = findViewById(R.id.imageView)
imageView.setImageResource(R.drawable.sample_image)
imageView.setBackgroundColor(Color.WHITE)
imageView.scaleType = ImageView.ScaleType.FIT_CENTER
动态设置图像的来源
1. 从资源加载图片:
imageView.setImageResource(R.drawable.sample_image);
2. 从网络加载图片(结合 Glide 库):
Glide.with(context)
.load("https://example.com/image.jpg")
.into(imageView);
3. 从 URI 加载图片:
Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.drawable.sample_image);
imageView.setImageURI(uri);
4. 从 Bitmap 设置图片:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sample_image);
imageView.setImageBitmap(bitmap);
设置图片缩放样式
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
添加点击事件
imageView.setOnClickListener(v -> {
Toast.makeText(context, "Image Clicked", Toast.LENGTH_SHORT).show();
});
设置颜色过滤器
imageView.setColorFilter(Color.RED); // 设置红色滤镜
imageView.clearColorFilter(); // 清除滤镜
设置透明度
imageView.setAlpha(0.5f); // 设置透明度为50%
完整的 XML 和 Java 示例
XML 布局文件:
<ImageView
android:id="@+id/imageView"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/sample_image"
android:scaleType="centerCrop"
android:tint="@color/blue"
android:layout_margin="16dp"
android:contentDescription="示例图片" />
Java 动态设置:
ImageView imageView = findViewById(R.id.imageView);
// 设置图片资源
imageView.setImageResource(R.drawable.sample_image);
// 设置缩放类型
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 设置点击事件
imageView.setOnClickListener(v -> {
Toast.makeText(context, "Image Clicked!", Toast.LENGTH_SHORT).show();
});
// 动态添加滤镜
imageView.setColorFilter(Color.argb(150, 255, 0, 0)); // 半透明红色
总结
• ImageView 是 Android 中展示图片的核心控件,提供了丰富的属性和方法。
• 灵活使用 android:scaleType、android:tint 等属性,可以实现各种图片展示效果。
• 结合第三方库(如 Glide 或 Picasso),可以轻松加载本地和网络图片。