android 的圖片顯示控件 imageView 是很常見的。顯示圖片比較簡(jiǎn)單尽爆,設(shè)置圖片源就可以了孵运。
一般我們使用 APP 內(nèi)的資源來實(shí)現(xiàn)。圖片原始文件就放在 res 下的 drawable 或 mipmap 內(nèi)桥胞。
我這次想實(shí)現(xiàn)的是,讓控件默認(rèn)顯示一張圖片附帽,當(dāng)點(diǎn)擊一個(gè)按鈕的時(shí)候埠戳,這張圖片和另一張圖片切換。并且蕉扮,達(dá)到每點(diǎn)擊一下就切換一次的效果整胃。
先在界面上添加 ImageView 控件,設(shè)置 srcCompat 為 @mipmap/ic_launcher
<ImageView
android:id="@+id/imgvwImageChange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginTop="8dp"
android:contentDescription="@string/imagechange"
app:layout_constraintStart_toEndOf="@+id/btnChangeImage"
app:layout_constraintTop_toBottomOf="@+id/edttxtUserName"
app:srcCompat="@mipmap/ic_launcher" />
再添加一個(gè)按鈕用來激發(fā)圖片切換動(dòng)作喳钟。
<Button
android:id="@+id/btnChangeImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="@string/changeimage"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/edttxtUserName" />
在 onCreate 函數(shù)中實(shí)現(xiàn)按鈕點(diǎn)擊事件監(jiān)聽
//換圖片
btnChangeImage.setOnClickListener{
if (imgvwImageChange.drawable.current.constantState != resources.getDrawable(R.drawable.tt).constantState){
imgvwImageChange.setImageResource(R.drawable.tt)
}else{
imgvwImageChange.setImageResource(R.mipmap.ic_launcher)
}
}
這里要注意判斷圖片是否為某一圖片的方法是使用 constantState
兩張切換的圖片分別是 R.mipmap.ic_launcher 和 R.drawable.tt 屁使。
它們一張放在mipmap一張放在drawable 在岂。