android TranslateAnimation动画执行时的坐标获取。
android 的Tween动画并不会改变控件的属性值,比如以下测试片段:
定义一个从屏幕右边进入,滚动到屏幕左边消失的一个TranslateAnimation动画:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"android:fillEnabled="true"android:fillAfter="true"><translate android:duration="7000" android:fromXDelta="100%p" android:toXDelta="-100%"/> </set>
在activity里面设置某个TextView的动画,并且另起一个线程每隔一秒获取textView的坐标:
public class Activity1 extends Activity {private TextView textView;private Animation animation;private int location[] = new int[2];private boolean flags = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);animation = AnimationUtils.loadAnimation(this,R.anim.scrollanim);textView = (TextView)findViewById(R.id.textview);textView.setOnClickListener(new TextView.OnClickListener() {@Overridepublic void onClick(View v) {textView.startAnimation(animation);}});getLocationThread.start();}private Thread getLocationThread = new Thread(){@Overridepublic void run() {while(flags){textView.getLocationOnScreen(location);Log.i("test", location[0] + "");try {Thread.sleep(1000L);} catch (InterruptedException e) {e.printStackTrace();}}}};@Overrideprotected void onDestroy() {flags = false;super.onDestroy();} }
最后LogCat测试结果如下所示:
可见虽然TextView随着动画移动了,但是他的位置属性并没有改变。
那么如何获取随着动画改变的坐标?
利用Transformation这个类
代码如下所示:
private Thread getLocationThread = new Thread(){@Overridepublic void run() {while(flags){Transformation transformation = new Transformation();animation.getTransformation(AnimationUtils.currentAnimationTimeMillis(),transformation);Matrix matrix = transformation.getMatrix();float[] matrixVals = new float[9];matrix.getValues(matrixVals);Log.i("test", matrixVals[2] + "");try {Thread.sleep(1000L);} catch (InterruptedException e) {// TODO Auto-generated catch block e.printStackTrace();}}}};
Matrix是由9个float构成的3X3的矩阵,如下所示:
|cosX -sinX translateX|
|sinx cosX translateY|
|0 0 scale |
cosX sinX表示旋转角度,按顺时针方向算。 scale是缩放比例。
启动线程后 LogCat如下所示:
转载于:https://www.cnblogs.com/hithlb/p/3554919.html
android TranslateAnimation动画执行时的坐标获取。相关推荐
- android 动画坐标,android TranslateAnimation动画执行时的坐标获取。
android 的Tween动画并不会改变控件的属性值,比如以下测试片段: 定义一个从屏幕右边进入,滚动到屏幕左边消失的一个TranslateAnimation动画: <?xml version ...
- Android利用 libsuperuse执行shell命令或获取root权限
Android 5.1 之后,发现通过ActivityManger获取不到正在运行的进程了,可以通过shell命令来获取,参考. libsuperuse执行shell可以参考: http://my.o ...
- android image 位移动画_深入理解Android之动画
Android 里动画从用途上讲,可以分为三类View Animation(View动画)又称 Tween Animation(补间动画).Drawable Animation(帧动画) 和 Prop ...
- TranslateAnimation动画
众所周知,TranslateAnimation是android中重要的一个动画函数,很多时候我们 都需要使用它来实现更好的UI效果,今天就简单研究下这个TranslateAnimation. Tran ...
- Android Animation动画(很详细)
Animations 一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等, ...
- android属性动画作用范围,Android开发之动画效果浅析(一)
程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...
- 【Android的从零单排开发日记】之入门篇(十六)——Android的动画效果
什么是动画,动画的本质是通过连续不断地显示若干图像来产生"动"起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉) ...
- android scaleanimation动画,Android 动画之ScaleAnimation应用详解
android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimat ...
- android Animation 动画。淡出动画
淡出动画 protected void startHotelNearByIconAnim() {AlphaAnimation alphaAnimation = new AlphaAnimation(1 ...
最新文章
- 如何拯救收录直线下滑的网站?
- python 实现原型设计模式
- 信息学奥赛C++语言: 数字三角形
- curl txt批量_curl与wget高级用法
- 如何查找MySQL中查询慢的SQL语句
- 美国政府悬赏1000万美元,获取 DarkSide 勒索团伙线索
- 带你了解Java Agent
- Optisystem 光锁相环
- SCJP刷题学习笔记(Part six)
- 前端之JS篇(七)——Web APIsDOM部分内容
- 工业物联网网关是什么?工业物联网网关有什么作用?
- PCL 自定义点云类型PointT
- Linux C/C++程序员 但行好事 莫问前程 Linux系统下 解决Qt5无法连接MySQL数据库的方法
- 【Java 入门】(六)表设计
- uni-app H5+ 连接蓝牙打印机打印文字及二维码
- idea中java版本设置
- 第三方支付为什么会兴起
- windows mysql提示:1045 access denied for user 'root'@'localhost' using password ye
- 如何在控制台创建文件夹
- 如何使用left join,以及left join的分析
热门文章
- redis python zset
- 当程序员的一个人无聊时,甚至用Python开发出机器人看他们聊天
- 基于单片机的超市储物柜设计_657【毕设课设】基于单片机智能存柜储物柜存储柜系统设计...
- pythonweb编程免费教程_python – Web编程教程
- 原始样式增加标题_好看又实用! 10个标题字体设计技巧
- 习题10-2 递归求阶乘和 (15 分)
- Android p2p service,android – WifiP2pDnsSdServiceInfo.newInstance中的可用服务类型
- 0x22.搜索 - 深度优先搜索
- JAVA 判断简单密码算法_十道简单算法题二【Java实现】
- 从数组中取出m个数相加的结果(组合)