1.JPG

2.JPG

 

以下紀錄ImageButton如何動態修改 image button src 來源,即是動態修改按鈕圖片。

Step1: 首先,建立一個 empty activity,並將上述的兩張圖片複製貼到 res/drawable:

3.jpg

 

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));
                }
            }
        });
    }
}

 

這樣就可以按下按鈕後換另一張圖片了。

arrow
arrow

    葛瑞斯肯 發表在 痞客邦 留言(0) 人氣()