android 按钮的点击缩放

来源:互联网 发布:淘宝神评论和神回复 编辑:程序博客网 时间:2024/04/29 11:35

1、

/** * 设置点击放大效果。 */public static void setClickZoomEffect(final View view) {if (view != null) {view.setOnTouchListener(new OnTouchListener() {boolean cancelled;Rect rect = new Rect();@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:scaleTo(v, Common.MAX_CLICK_ZOOM_FACTOR);break;case MotionEvent.ACTION_MOVE:if (rect.isEmpty()) {v.getDrawingRect(rect);}if (!rect.contains((int) event.getX(), (int) event.getY())) {scaleTo(v, 1);cancelled = true;}break;case MotionEvent.ACTION_UP:case MotionEvent.ACTION_CANCEL: {if (!cancelled) {scaleTo(v, 1);} else {cancelled = false;}break;}}return false;}});}}

/** * 对view进行缩放。 */@SuppressLint("NewApi")public static void scaleTo(View v, float scale) {if (Build.VERSION.SDK_INT >= 11) {v.setScaleX(scale);v.setScaleY(scale);} else {float oldScale = 1;if (v.getTag(Integer.MIN_VALUE) != null) {oldScale = (Float) v.getTag(Integer.MIN_VALUE);}final LayoutParams params = v.getLayoutParams();params.width = (int) ((params.width / oldScale) * scale);params.height = (int) ((params.height / oldScale) * scale);v.setTag(Integer.MIN_VALUE, scale);}}


0 0
原创粉丝点击