Android移动view动画问题
http://www.cnblogs.com/eoiioe/archive/2012/08/29/2662546.html
public void slideview(final float p1, final float p2) {
TranslateAnimation animation = new TranslateAnimation(p1, p2, 0, 0);
animation.setInterpolator(new OvershootInterpolator());
animation.setDuration(durationMillis);
animation.setStartOffset(delayMillis);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
int left = view.getLeft()+(int)(p2-p1);
int top = view.getTop();
int width = view.getWidth();
int height = view.getHeight();
view.clearAnimation();
view.layout(left, top, left+width, top+height);
}
});
view.startAnimation(animation);
}
slideview(0, -distance);
过程中遇到的问题:
1、动画执行完成后,view回到原位
开始时动画效果只写了这么多,发现动画执行完,view会回到原位。
2、点击按钮时,view在初始位置会先闪一下,再执行动画
经过查资料得知,animation.setFillAfter(true); 只是将view移动到了目标位置,但是view绑定的点击事件还在原来位置,导致点击时会先闪一下
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
int left = view.getLeft()+(int)(p2-p1);
int top = view.getTop();
int width = view.getWidth();
int height = view.getHeight();
view.clearAnimation();
view.layout(left, top, left+width, top+height);
}
});
在动画执行完毕后(onAnimationEnd)设置view的位置,同时要clearAnimation()
Android移动view动画问题的更多相关文章
- Android开发——View动画、帧动画和属性动画详解
0. 前言 Android动画是面试的时候经常被问到的话题.我们都知道Android动画分为三类:View动画.帧动画和属性动画. 先对这三种动画做一个概述: View动画是一种渐进式动画,通过图 ...
- Android传统View动画与Property动画基础及比较
前言:关于动画方面的知识也整理一段时间了,如题,这篇文章简单的介绍了View和Property动画的概念,如何在项目中创建资源文件,以及如何在代码中使用它们,本次整理动画的重点放在了Property动 ...
- Android(java)学习笔记200:Android中View动画之 XML实现 和 代码实现
1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...
- Android(java)学习笔记143:Android中View动画之 XML实现 和 代码实现
1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...
- Android中view动画
[1]透明 //点击按钮 实现iv 透明的效果 动画 public void click1(View v) { //1.0意味着着完全不透明 0.0意味着完全透明 AlphaAnimation aa ...
- 怎样使android的view动画循环弹动
在res中建立文件夹anim,分别写下cycles.xml,shake1.xml,shake2.xml cycles.xml: <?xml version="1.0" enc ...
- 虾扯蛋:Android View动画 Animation不完全解析
本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ...
- Android自定义View 画弧形,文字,并增加动画效果
一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类 B ...
- android view : 动画
view中除了必要的移动之外,也可以使用动画来完善视觉效果.android中的动画在2.3之前只有帧动画和补间动画.3.0之后就加入了属性动画.其实说到动画是什么?就是一个连续的view的集合.帧动画 ...
随机推荐
- 安装Oracle,新建组、用户的时候的一个错误
[root@localhost /]# mkdir -p /u01/oracle[root@localhost /]# useradd -g oinstall -G dba -d /u01/oracl ...
- (Problem 28)Number spiral diagonals
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is forme ...
- angularJS友好URL实现 good
nginx部署 angularjs时的rewrite问题 使用h5+angularjs完成了一个项目 此项目在正式环境上使用nginx做webserver 此项目的入口在微信/微博分享中 由于分享时的 ...
- LNK 2005 error 函数定义也是定义!!
url=Ccne-rWwUO9tJp5YAPcycUw09__2whgZLpLw2aWVuYuE-fhu46kaVNX4BldWlsxig1tDML47aO_ctD3PcUlGjK"> ...
- HDU 4825 Xor Sum 字典树+位运算
点击打开链接 Xor Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) ...
- ThinkPHP - 扩展个人类库 - 以验证码类为例子
首先,在项目目录下创建Class文件夹,用于存储个人类文件. 之后建立Data目录存放所需字体文件,其他的数据也可以放在这个文件夹下. 然后再Conf文件夹下创建verify.php配置文件. 在co ...
- 【Hibernate】HQL new map
HQL 查询如果需要带出对象(比如:OneToOne子对象)的一两个属性,而不是全部带出.可以使用 select new map的方法带出. 1.lazy还是设置为false /**关联属性对象*/ ...
- unity学习中经常要碰到的几种数据结构
常碰到的几种数据结构:1.Array,2.ArrayList,3.List<T>,4.LinkedList<T>,5.Queue<T>,6.Stack<T&g ...
- week4_motion_of_ball_1(小球运动)——最基本
# Ball motion with an explicit timer import simplegui # Initialize globals width = 600 height = 600 ...
- FFT算法
FFT算法的完整DSP实现 傅里叶变换或者FFT的理论参考: [1] http://www.dspguide.com/ch12/2.htm The Scientist and Engineer's G ...