You need to enable JavaScript to run this app. 如何在Android Studio中用Kotlin动态修改ImageView显示的图片
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中用Kotlin动态修改ImageView显示的图片

Kotlin 实现Android运行时动态修改ImageView图片方案

前置准备

将需要用到的图片资源放入项目res/drawable目录,资源命名仅可使用小写字母、数字、下划线,不可用数字开头。

基础实现方式

1. 加载项目内置drawable资源

首先在布局文件中声明ImageView:

<ImageView
    android:id="@+id/displayIv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/default_image" />

在需要切换图片的Kotlin逻辑中直接调用即可:

// 通用方案,直接传入资源ID
displayIv.setImageResource(R.drawable.target_image)

// 需对Drawable做额外处理时使用该方案
val targetDrawable = resources.getDrawable(R.drawable.target_image, theme)
displayIv.setImageDrawable(targetDrawable)

注意:Android 6.0(API 23)及以上版本推荐使用带theme参数的getDrawable方法,避免主题适配异常。

2. 加载本地存储图片

如果需要加载手机本地存储中的图片(如相册选择的图片),使用如下代码:

// uri为本地图片对应的资源地址
displayIv.setImageURI(uri)

注意:直接调用setImageURI加载大图容易触发OOM,建议先对图片做压缩处理再设置。

3. 常见触发场景示例(点击按钮切换图片)

// 假设布局内存在id为switchBtn的按钮控件
switchBtn.setOnClickListener {
    displayIv.setImageResource(R.drawable.new_image)
}

常见问题排查

  • 图片设置后不显示:优先检查资源ID是否正确,排查是否存在同名不同后缀的资源冲突
  • 触发资源找不到崩溃:确认drawable资源是否仅存放在特定dpi的drawable目录,未在默认drawable目录存放通用版本
  • 需要切换过渡效果:可搭配ImageView的startAnimation方法,引入动画资源实现淡入淡出等切换效果

内容的提问来源于stack exchange,提问作者MCH170

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 15:33:03