android 按钮的点击缩放
16lz
2022-05-28
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);}}
更多相关文章
- Android(安卓)Studio 第七十七期 - Android(安卓)广告页 欢迎页
- GridView 实现水平拖拉效果
- GridView 实现水平拖拉效果
- Activity半透明效果
- android layer-list
- Android放大镜的实现
- 一个Android实现图片的倒影效果的代码示例
- android 打电话程序的实现
- Android(安卓)沉浸式状态栏 +DrawerLayout+Toolbar,适配4.4X及以