Android 系统动画, 移动中不能点击问题!
来源:互联网 发布:java软件开发简历范文 编辑:程序博客网 时间:2024/06/13 08:46
Android 系统动画, 移动中不能点击问题!
Android 3.3 之后加入属性动画,即可解决,移动中可以对View进行点击。View动画则不接收在移动的位置进行点击。
利用View动画也想要接收点击事件请往下看:
- Android动画因为在移动中不接受点击事件,采取View 盖住动画,通过动画运动轨迹 计算点击处 是否为 移动的图片所在的实时位置,从而达到 实现点击的效果。
https://github.com/shangriDong/AnimClick.git
这是全部代码。。
关键在于要计算当前动画A的运算轨迹, 非匀速运动动画此方法不可处理。
private void animStart(View view) { view.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); mViewWidth = view.getMeasuredWidth(); widthPixels = mDm.widthPixels; mDurationInScreen = (long) (widthPixels / (widthPixels + mViewWidth) * mDuration); //计算 在屏幕内移动的时间 //从屏幕的右侧,漂移到屏幕左侧 ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.TRANSLATION_X, (int) widthPixels, -(int) mViewWidth); animator.setDuration(mDuration); //移动10s animator.setInterpolator(new LinearInterpolator()); //匀速移动 必须为允许,否则 计算位置将不准确 mStartTime = System.currentTimeMillis(); animator.start(); }
此函数用来处理 动画的移动
animator.setInterpolator(new LinearInterpolator()); //匀速移动 必须为允许,否则 计算位置将不准确
一定要 设置为匀速动画, 如果自己写差值器, 也可以计算出移动位置。
view.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); mViewWidth = view.getMeasuredWidth(); widthPixels = mDm.widthPixels;
此代码用来获取动画的宽度,必须要measure,否咋不能正确的获得view的宽度,因为view没有被绘制
mBottomView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { double diffTime = System.currentTimeMillis() - mStartTime; if (diffTime < mDurationInScreen) { int x = (int) ((1 - diffTime / mDurationInScreen) * widthPixels); if (event.getX() >= x && event.getX() <= (x + mViewWidth)) { Log.e(getClass().getName(), "---------------success------"); Toast.makeText(activity, "success", Toast.LENGTH_LONG).show(); } } } return true; //此处必然为true, 否则接收不到up 事件 } });
onTouch时间一定要return true 否则不会接受到MotionEvent.ACTION_UP 事件。
sy_dqs@163.com 欢迎指正,谢谢! 原创博客,不经博主同意不得转载。
0 0
- Android 系统动画, 移动中不能点击问题!
- UIButton 动画移动 过程中 不能点击
- Android的动画移动后点击事件失效问题
- android动画-移动动画问题
- Android ListView item中有按钮(Button)不能点击或者条目不能点击的问题
- android 动画结束后控件不能点击问题和View闪的问题
- android listView 不能点击问题
- unity在Android中frameLayout布局时不能点击问题
- Android移动view动画问题
- Android移动view动画问题
- Android移动view动画问题
- Android移动view动画问题
- Ubuntu 鼠标可以移动不能点击的问题
- 修改android系统中点击”更多”报错问题
- android执行移动动画后按钮点击错位问题解决
- listview中listitem点击实现沿曲线移动动画效果
- Android控件listView条目不能点击问题
- android Frame动画不能播放问题解析
- CodeForces 1B Spreadsheets
- MSDN, 我告诉你[http://msdn.itellyou.cn/]
- Hadoop:HDFS数据存储与切分
- hdu-1242 Rescue DFS解法
- Android中实现静态的默认安装和卸载应用
- Android 系统动画, 移动中不能点击问题!
- Masonry+FDTemplateLayoutCell 实现Cell自动布局
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@2929e5e9 -- APPARENT DEADLOCK!!!
- Hadoop:MapReduce模型
- 【数字信号处理】十大经典软件滤波算法
- Collection与Collections的区别
- Android编译系统详解(一)——build/envsetup.sh
- 十年一覺程設夢[完整版]
- const 指针与指向const的指针