本帖最後由 不知火羽 於 2012-9-12 02:19 編輯
換圖片的話 可以試試看用setImageResource看看
通常顯示圖片的的控制元件 可以用ImageView來作
假如顯示圖片的物件叫imageView1
要顯示的圖片叫pic1好了
可以這樣寫- Button button1 = (Button) findViewById(R.id.button1);
- ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
- button1.setOnClickListener(new OnClickListener(){ //設定監聽器
- public void onClick(View v) {
- imageView1.setImageResource(R.drawable.pic1); //設定圖片
- }
- });
複製代碼 setImageResource()
從Resource裡面抓取圖片 以上範例就是用這函式
裡面已經將ResourceId轉成圖片 就不必大費周章用 setImageDrawable ()
使用setImageDrawable () 的範例如下- imageView1.setImageDrawable(getResources().getDrawable(R.drawable.pic1));
複製代碼 如果是用多個按鈕去抓
建議可以用陣列寫 比較省時間
如果不想用陣列寫也不勉強~
陣列寫法
1.先定義Resources Id陣列- final static int[] buttonId = {R.id.button1,R.id.button2,R.id.button3,...,R.id.button8))}; //圖片id陣列
- final static int[] pic = {R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,...,R.drawable.pic8}; //按鈕陣列
複製代碼 2.將按鈕和id連接- Button[] buttonArr = new Button[8]; //定義按鈕陣列
- for (int i=0;i<8;i++)
- buttonArr[i] = (Button) findViewById(buttonId); //陣列中的按鈕一個個做連接
複製代碼 3.定義OnClickListener監聽器- private class MyButtonClickListener imprements OnClickListener{
- private int index; //定義類別內的序數
- public MyButtonClickListener(int index){
- this.index = index; //序數存進去
- }
- public void onClick(View v) {
- imageView1.setImageResource(pic[index]); //設定圖片
- }
- }
複製代碼 如果要讓巢狀類別抓取imageView1記得先在原本的Activity定義imageView1- private ImageView imageView1;
複製代碼 在到onCreate()去做連接- imageView1 = (ImageView) findViewById(R.id.imageView1);
複製代碼 4.將OnClickListener監聽器註冊到按鈕上- for (int i=0;i<8;i++)
- buttonArr[i].setOnClickListener(new MyButtonClickListener(i));
複製代碼 此迴圈可和第二步驟的迴圈合併 如下- Button[] buttonArr = new Button[8]; //定義按鈕陣列
- for (int i=0;i<8;i++){
- buttonArr[i] = (Button) findViewById(buttonId); //陣列中的按鈕一個個做連接
- buttonArr[i].setOnClickListener(new MyButtonClickListener(i));//註冊監聽器
- }
複製代碼 |