本文来自:http://www.iteye.com/topic/575279

Button 有按下效果

[功能]

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

[代码]

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

  1. play.png
  2. play_down.png

2. 根据各种状态 定制化所显示的 *.png 命名为: myselection.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/play" />      <item           android:state_pressed="true"           android:drawable="@drawable/play_down" />      <item           android:drawable="@drawable/play" />  </selector> 

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

    <?xml version="1.0" encoding="utf-8"?>      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"          android:orientation="vertical"          android:layout_width="fill_parent"          android:layout_height="fill_parent"          >      <TextView            android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:text="Button Style!"          />      <ImageButton                   android:id="@+id/playorpause"                   android:layout_width="wrap_content"                  android:layout_height="wrap_content"                   android:src="@xml/myselection"                   android:background="#00000000" />      </LinearLayout>  

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

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

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:orientation="vertical"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      >  <ImageButton      android:id="@+id/button"        android:layout_width="wrap_content"       android:layout_height="wrap_content"       />  </LinearLayout> 

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

    ImageButton btn = (ImageButton) findViewById(R.id.button);                            //to set its default *.png              btn.setBackgroundResource(R.drawable.play);              btn.setOnTouchListener(new ImageButton.OnTouchListener(){                  @Override                  public boolean onTouch(View arg0, MotionEvent arg1) {                      // TODO Auto-generated method stub                      if(arg1.getAction() == MotionEvent.ACTION_DOWN){                          arg0.setBackgroundResource(R.drawable.play_down);                      }                      else if(arg1.getAction() == MotionEvent.ACTION_UP){                          arg0.setBackgroundResource(R.drawable.play);                      }                                            return false;                  }                                });  

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

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

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

更多相关文章

  1. Android(安卓)5.X的新特性实例
  2. Android(安卓)Studio使用---眼花缭乱的插件使用技巧
  3. activity跳转黑屏但不透明桌面问题
  4. Android得到呼入的手机号码
  5. android jni开发流程
  6. 学习:Android生命周期
  7. Android之使用网络技术
  8. android中的数据存储 收藏
  9. android 系统重启关机 方法 非常好的一篇文章

随机推荐

  1. Android 拼接两个图片
  2. ubuntu11.10中配置android 环境
  3. 去掉移动网页、android webview 加载网页
  4. Android刘海屏全面屏底部导航栏的适配
  5. Android 3D emulation 架构理解
  6. Android Framework的启动过程
  7. SuperITGirl李小扣 air for android做的f
  8. android与server端servlet交互
  9. Android: softkey WAKE and WAKE_DPOPPED
  10. android四大组件