android 按钮松开,Android 实现控件按住缩小,松开放大的效果

目录

一、介绍

二、代码

1、通过onTouch监听实现

2、通过ButterKnife的@OnTouch监听实现

参考链接:

一、介绍

效果:按钮按下时会缩小,松开变回原大小

思路:使用view的setScaleX  和setScaleY这两个方法 ,在onTouch的DOWN事件和UP 事件中做处理,

二、代码

1、通过onTouch监听实现

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

switch (motionEvent.getAction()) {

case MotionEvent.ACTION_DOWN:

if (view.getId() == R.id.btn_test) {

mTestBtn.setScaleX((float) 0.95);

mTestBtn.setScaleY((float) 0.95);

}

break;

case MotionEvent.ACTION_UP:

if (view.getId() == R.id.btn_test) {

mTestBtn.setScaleX(1);

mTestBtn.setScaleY(1);

}

break;

default:

}

return false;

}

注意onTouch事件要把返回值置为false  否则事件将被onTouch消费掉,onClick得不到响应。

2、通过ButterKnife的@OnTouch监听实现

@OnTouch({R.id.tv_back, R.id.Rl_my_info, R.id.ll_my_order, R.id.ll_my_wallet, R.id.ll_my_coupon, R.id.ll_my_massage, R.id.ll_about, R.id.ll_explain})

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN: //手指按下

scaleView(true, 0.8f,view);

break;

case MotionEvent.ACTION_MOVE: //手指移动(从手指按下到抬起 move多次执行)

break;

case MotionEvent.ACTION_UP: //手指抬起

scaleView(false, 1.0f,view);

break;

}

return false;

}

/**

* @param zoomOut true缩小 false 还原

* @param ratio 缩小的比例(0-1)

* @param views view数组

*/

private void scaleView(boolean zoomOut, float ratio, View... views) {

for (View view : views) {

if (zoomOut) {

view.setScaleX(ratio);

view.setScaleY(ratio);

} else {

view.setScaleX(1);

view.setScaleY(1);

}

}

}

参考链接:

Android实现按住缩小 松开放大的效果

ButterKnife之@OnTouch——界面交互效果进阶

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值