Android ImageButton單擊切換按鈕圖片效果


正常狀態的效果:

按鈕按下的效果圖片:

一、在java中為圖片按鈕增加觸摸監聽的函數來實現圖片切換,代碼如下:

        ImageButton btn = (ImageButton)findViewById(R.id.imageButton1);        
        btn.setOnTouchListener(new View.OnTouchListener(){            
            public boolean onTouch(View v, MotionEvent event) {                
                    if(event.getAction() == MotionEvent.ACTION_DOWN){     
                       //重新設置按下時的背景圖片
                       ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn_pressed));                            
                    }else if(event.getAction() == MotionEvent.ACTION_UP){     
                        //再修改為抬起時的正常圖片
                        ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn));   
                    }
                    return false;     
            }     
        });

代碼比較簡單,就是當圖片按下時,修改按鈕的背景圖片,當抬起時再修改為正常的圖片顯示。

二、通過給按鈕配置XML文件來實現圖片按鈕的背景切換效果,方法如下:

1) 在Layout下增加一個image_btn_press.xml文件,內容如下:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:state_pressed="false" android:drawable="@drawable/android_btn" />
     <item android:state_focused="true" android:drawable="@drawable/android_btn" />
     <item android:state_pressed="true" android:drawable="@drawable/android_btn_pressed" /> 
</selector> 

在main.xml中設置圖片按鈕的屬性:

    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@layout/image_btn_press" />

在ImageButtonk中指定background的屬性值:@layout/image_btn_press,其中image_btn_press 就是上面為該圖片銨鈕創建的XML配置文件。同時,你也可以將image_btn_press.xml文件放到drawable的目錄 下,此時,就要將它的屬性值修改為:@drawable/image_btn_press即可,也就是說指定它的XML文件的正確路經就行了。

另外,需要特別注意的是在ImageButton中,如果使用XML配置文件來設置圖片的效果的話,就不要再指定它的android:src=""屬性值了,否則圖片的按下效果就出不來了。

設置按鈕不可按狀態:ImageButton.Attributes.Add("onclick","return false");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM