让Button 有按下效果 更有视觉效果

来源:互联网 发布:免费图片库 知乎 编辑:程序博客网 时间:2024/05/19 16:34

 

功能]

Button 有按下效果 更有视觉效果

 

[代码]

1. 先准备2*.png 一张供默认使用 另一张供按下使用 本例为:

 

Java代码  

1.      play.png  

2.      play_down.png  

 

 

2.  根据各种状态 定制化所显示的 *.png 命名为: myselection.xml

Java代码  

1.      <?xml version="1.0" encoding="utf-8"?>  

2.      <selector xmlns:android="http://schemas.android.com/apk/res/android">  

3.          <item   

4.              android:state_pressed="false"   

5.              android:drawable="@drawable/play" />  

6.          <item   

7.              android:state_pressed="true"   

8.              android:drawable="@drawable/play_down" />  

9.          <item   

10.          android:drawable="@drawable/play" />  

11.  </selector>   

 

 

3. main.xml 布局中 添加Button 元件 设置 使用 myselection.xml

Java代码  

1.      <?xml version="1.0" encoding="utf-8"?>  

2.      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

3.          android:orientation="vertical"  

4.          android:layout_width="fill_parent"  

5.          android:layout_height="fill_parent"  

6.          >  

7.      <TextView    

8.          android:layout_width="fill_parent"   

9.          android:layout_height="wrap_content"   

10.      android:text="Button Style!"  

11.      />  

12.  <ImageButton   

13.              android:id="@+id/playorpause"   

14.              android:layout_width="wrap_content"  

15.              android:layout_height="wrap_content"   

16.              android:src="@xml/myselection"   

17.              android:background="#00000000" />  

18.  </LinearLayout>  

 

 

 

4. 大家可以自己看看效果 因为不好截图

 

 

其实 除了上面的方法 还有一个方法 为:

1. maun.xml 中添加 ImageButton 且不设置使用的*.png

Java代码  

1.      <?xml version="1.0" encoding="utf-8"?>  

2.      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

3.          android:orientation="vertical"  

4.          android:layout_width="fill_parent"  

5.          android:layout_height="fill_parent"  

6.          >  

7.      <ImageButton  

8.          android:id="@+id/button"    

9.          android:layout_width="wrap_content"   

10.      android:layout_height="wrap_content"   

11.      />  

12.  </LinearLayout>  

 

 

2. 在该ImageButton上设置监听器 并根据其状态使用对应的资源 但是必须要设置默认资源

Java代码  

1.      ImageButton btn = (ImageButton) findViewById(R.id.button);  

2.                

3.              //to set its default *.png  

4.              btn.setBackgroundResource(R.drawable.play);  

5.              btn.setOnTouchListener(new ImageButton.OnTouchListener(){  

6.                  @Override  

7.                  public boolean onTouch(View arg0, MotionEvent arg1) {  

8.                      // TODO Auto-generated method stub  

9.                      if(arg1.getAction() == MotionEvent.ACTION_DOWN){  

10.                      arg0.setBackgroundResource(R.drawable.play_down);  

11.                  }  

12.                  else if(arg1.getAction() == MotionEvent.ACTION_UP){  

13.                      arg0.setBackgroundResource(R.drawable.play);  

14.                  }  

15.                    

16.                  return false;  

17.              }  

18.                

19.          });  

 

 

 

具体哪个方法更好 应该根据自己的场合:

1. 只有一个Button 推荐使用第一个方法

2. 有几个Button 推荐使用第二个 统一定义 然后根据指定的id 来使用目标*.png

 

原创粉丝点击