如何用Kotlin实现点击按钮依次切换10张图片
Kotlin实现点击按钮切换10张图片
准备工作
把你的10张图片放入项目的res/drawable目录,建议按顺序命名(比如img_1到img_10),方便后续统一管理。
编写布局文件
在activity_main.xml中添加用于显示图片的ImageView和触发切换的Button:
<?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" android:orientation="vertical" android:gravity="center" android:padding="16dp"> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/img_1" /> <!-- 默认加载第一张图 --> <Button android:id="@+id/switchBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="切换下一张" android:layout_marginTop="24dp"/> </LinearLayout>
编写Kotlin逻辑代码
在MainActivity.kt中实现核心切换逻辑:
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.ImageView class MainActivity : AppCompatActivity() { // 按顺序存储所有图片的资源ID private val imageIds = arrayOf( R.drawable.img_1, R.drawable.img_2, R.drawable.img_3, R.drawable.img_4, R.drawable.img_5, R.drawable.img_6, R.drawable.img_7, R.drawable.img_8, R.drawable.img_9, R.drawable.img_10 ) private var currentIndex = 0 // 当前显示图片的索引(初始为第一张) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val imageView = findViewById<ImageView>(R.id.imageView) val switchBtn = findViewById<Button>(R.id.switchBtn) switchBtn.setOnClickListener { // 切换到下一张,直到第10张后停止 if (currentIndex < imageIds.size - 1) { currentIndex++ imageView.setImageResource(imageIds[currentIndex]) } // 如果你需要第10张后点击回到第一张,替换上面的判断为下面的代码: // currentIndex = (currentIndex + 1) % imageIds.size // imageView.setImageResource(imageIds[currentIndex]) } } }
关键逻辑说明
imageIds数组:将所有图片资源ID按顺序存入,通过索引直接定位到目标图片。currentIndex:维护当前显示图片的位置,初始值0对应第一张图。- 按钮点击事件:每次点击判断当前索引是否未到最后一张(索引
9),如果是则更新索引并切换图片;如果需要循环切换,使用取模运算实现索引的循环更新。
内容的提问来源于stack exchange,提问作者onlyforquestions
相关产品推荐
相关产品推荐

