綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 如何讓android 按鈕點擊圖片切換

[複製連結] 查看: 7187|回覆: 1|好評: 0
跳轉到指定樓層
樓主
lrving | 收聽TA | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
發表於 2012-9-10 12:00

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
如題

要如何編寫 點擊按鈕後  一旁的介面,圖片會切換

例如   一開始進來這activity 會有幾個button  一旁介面一開始會有一張圖片
      
       點button 1  換第一張圖
       點 button 2  換第二張圖
        最後的button 會回上一個 activity

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏1 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
不知火羽 | 收聽TA | 只看該作者
發表於 2012-9-12 01:51
本帖最後由 不知火羽 於 2012-9-12 02:19 編輯

換圖片的話 可以試試看用setImageResource看看
通常顯示圖片的的控制元件 可以用ImageView來作
假如顯示圖片的物件叫imageView1
要顯示的圖片叫pic1好了
可以這樣寫
  1. Button button1 = (Button) findViewById(R.id.button1);
  2. ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
  3. button1.setOnClickListener(new OnClickListener(){  //設定監聽器
  4.         public void onClick(View v) {
  5.                 imageView1.setImageResource(R.drawable.pic1); //設定圖片
  6.         }
  7. });
複製代碼
setImageResource()
從Resource裡面抓取圖片 以上範例就是用這函式
裡面已經將ResourceId轉成圖片 就不必大費周章用 setImageDrawable ()
使用setImageDrawable () 的範例如下
  1. imageView1.setImageDrawable(getResources().getDrawable(R.drawable.pic1));
複製代碼
如果是用多個按鈕去抓

建議可以用陣列寫 比較省時間
如果不想用陣列寫也不勉強~

陣列寫法
1.先定義Resources Id陣列
  1. final static int[] buttonId = {R.id.button1,R.id.button2,R.id.button3,...,R.id.button8))}; //圖片id陣列
  2. final static int[] pic = {R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,...,R.drawable.pic8}; //按鈕陣列
複製代碼
2.將按鈕和id連接
  1. Button[] buttonArr = new Button[8];  //定義按鈕陣列
  2. for (int i=0;i<8;i++)
  3.         buttonArr[i] = (Button) findViewById(buttonId);        //陣列中的按鈕一個個做連接
複製代碼
3.定義OnClickListener監聽器
  1. private class MyButtonClickListener imprements OnClickListener{
  2.         private int index; //定義類別內的序數
  3.         public MyButtonClickListener(int index){
  4.                 this.index = index; //序數存進去
  5.         }
  6.         public void onClick(View v) {
  7.                 imageView1.setImageResource(pic[index]); //設定圖片
  8.         }
  9. }
複製代碼
如果要讓巢狀類別抓取imageView1記得先在原本的Activity定義imageView1
  1. private ImageView imageView1;
複製代碼
在到onCreate()去做連接
  1. imageView1 = (ImageView) findViewById(R.id.imageView1);
複製代碼
4.將OnClickListener監聽器註冊到按鈕上
  1. for (int i=0;i<8;i++)
  2.         buttonArr[i].setOnClickListener(new MyButtonClickListener(i));
複製代碼
此迴圈可和第二步驟的迴圈合併 如下
  1. Button[] buttonArr = new Button[8];  //定義按鈕陣列
  2. for (int i=0;i<8;i++){
  3.         buttonArr[i] = (Button) findViewById(buttonId);        //陣列中的按鈕一個個做連接
  4.         buttonArr[i].setOnClickListener(new MyButtonClickListener(i));//註冊監聽器
  5. }
複製代碼

評分

參與人數 2碎鑽 +1 幫助 +2 收起 理由
邱祥意 + 1
lrving + 1 + 1 非常讚

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則