java风车旋转_如何设置ImageButton按键按下去后的 特效----(如类似风车旋转的动画特效)...

android默认的Imagebutton按下去之后没有一点变化,实在让人受不了。这次在重新写摄像头相关的demo时,特意学习了这方面的内容。

**第一种方法:**

前文http://blog.csdn.net/yanzi1225627/article/details/7814392这是一种思路,可以用美图秀秀将同一个图片做成不同的灰度/色调效果,保存成同样大小的图片,然后利用http://blog.csdn.net/yanzi1225627/article/details/7814392这里设置成点击显示不同色调灰度的同一副图片。

**第二种方法:**

还是同样的思路,只不过不是在xml文件里,而是在java程序里更改点击显示不同图片,如下:

~~~

imageButton.setOnTouchListener(new OnTouchListener(){

@Override

public boolean onTouch(View v, MotionEvent event) {

if(event.getAction() == MotionEvent.ACTION_DOWN){

//更改为按下时的背景图片

v.setBackgroundResource(R.drawable.pressed);

}else if(event.getAction() == MotionEvent.ACTION_UP){

//改为抬起时的图片

v.setBackgroundResource(R.drawable.released);

}

return false;

}

});

~~~

**第三种方法:**

这也是我采用的方法。前两种方法在按键多的情况下用起来很不方便,当然不排除个别情况下就需要显示不同的图片。这里用颜色矩阵的方法,只需一张照片,就可以实现效果。且这个效果可以往任何一个ImageButton上绑定。代码如下:

~~~

/*为了使图片按钮按下和弹起状态不同,采用过滤颜色的方法.按下的时候让图片颜色变淡*/

public class MyOnTouchListener implements OnTouchListener{

public final float[] BT_SELECTED=new float[]

{ 2, 0, 0, 0, 2,

0, 2, 0, 0, 2,

0, 0, 2, 0, 2,

0, 0, 0, 1, 0 };

public final float[] BT_NOT_SELECTED=new float[]

{ 1, 0, 0, 0, 0,

0, 1, 0, 0, 0,

0, 0, 1, 0, 0,

0, 0, 0, 1, 0 };

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

if(event.getAction() == MotionEvent.ACTION_DOWN){

v.getBackground().setColorFilter(new ColorMatrixColorFilter(BT_SELECTED));

v.setBackgroundDrawable(v.getBackground());

}

else if(event.getAction() == MotionEvent.ACTION_UP){

v.getBackground().setColorFilter(new ColorMatrixColorFilter(BT_NOT_SELECTED));

v.setBackgroundDrawable(v.getBackground());

}

return false;

}

}

~~~

可以用我http://blog.csdn.net/yanzi1225627/article/details/8577756这里的图片测试下,ImageButton按下后会有类似风车旋转的动画特效。

核心参考:

http://blog.sina.com.cn/s/blog_972ddc1b010113df.html

http://www.cnblogs.com/xiaowenji/archive/2011/02/04/1949165.html

http://blog.csdn.net/sytzz/article/details/5673662

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值