以下紀錄ImageButton如何動態修改 image button 的 src 來源,即是動態修改按鈕圖片。
Step1: 首先,建立一個 empty activity,並將上述的兩張圖片複製貼到 res/drawable中:
Step2: 然後在 activity_main.xml 中建立一個 ImageButton並使用 src 屬性引用一個圖片,並且在MainActivity.java中建置一個ImageButton來與layout上的建立關聯性,程式碼如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/record_start"
android:id="@+id/imagebutton"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
|
package tw.idv.ken.imagedemo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageButton;
public class MainActivity extends AppCompatActivity {
ImageButton ib;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ib = findViewById(R.id.imagebutton);
}
}
|
Step3: 最後建立listener事件,讓src可以依據按鈕行為進行更換,然後我們用布林值來決定要換哪張照片,完整程式碼如下:
package tw.idv.ken.imagedemo;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
public class MainActivity extends AppCompatActivity {
ImageButton ib;
boolean on = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ib = findViewById(R.id.imagebutton);
ib.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(!on) {
on = true;
ib.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.record_stop));
}else{
on = false;
ib.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.record_start));
}
}
});
}
}
|
這樣就可以按下按鈕後換另一張圖片了。
留言列表