Android跳转原来页面Test测试有TranslateAnimation页面

在Android中,想要TranslateAnimation与for循环一起用,但运行结果只有最后一次循环移动,不明求教_百度知道
在Android中,想要TranslateAnimation与for循环一起用,但运行结果只有最后一次循环移动,不明求教
voidaction(intfromXDelta,inttoXDelta,intfromYDelta,inttoYDelta){//平移setFillAfter(true)控制执行动画后定在当前状态AnimationtranslateIn=newTranslateAnimation(fromXDelta,to...
void action(int fromXDelta, int toXDelta, int fromYDelta, int toYDelta) {
// 平移 setFillAfter(true) 控制执行动画后定在当前状态
Animation translateIn = new TranslateAnimation(fromXDelta, toXDelta,
fromYDelta, toYDelta);
translateIn.setDuration(3000);
translateIn.setFillAfter(true);
scanLight.startAnimation(translateIn);
translateIn.cancel(); }void run() {
for (int i = 0; i & abc. i++) {
switch (abc[i]) {//在这里解析数组,根据数组的内容来进行定义xy坐标
fromX=(100);
fromX=(50);
fromX=(100);
fromX=(500);
fromX=(500);
fromX=(500);
fromX=(500);
fromX=(700);
fromX=(1150);
fromX=(700);
fromX=(1150);
fromX=(300);
fromX=(500);
fromX=(500);
fromX=(100);
fromX=(500);
action(x, fromX, y, fromY);
Thread.sleep(4000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.i(&aaa&, &abc[i]& + abc[i]);
Log.i(&xy&, &x
& + x + & toX & + fromX + & y & + y
+ & toY & + fromY);
x = fromX;
y = fromY;
} }根据数组内容来定义坐标,然后移动到坐标点,因为很多坐标点,要连续移动
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
你的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏30(财富值+成长值)
采纳数:23
获赞数:28
startAnimation 你没有设置重复执行 就只会执行一次
我设置过重复,但是只有最后一次for循环给的参数坐标重复执行
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。我正在做一个效果:拖动一个view使之移动,松开后view会移动到固定的位置。
问题出现了:每当view回到指定位置的动画结束后,view都会回到起始位置,于是我设置了AnimationListener,在onAnimationEnd里调整了view的位置,但是在动画结束的一瞬间view还是会闪动一下。关于setFillAfter设为true的方法我也尝试过。不会闪动,但是下一次拖拽会出现问题。简短的代码如下:
case MotionEvent.ACTION_UP:
TranslateAnimation a = new TranslateAnimation(0,0,0,300-v.getTop());
a.setAnimationListener(new AnimationListener(){
public void onAnimationEnd(Animation animation) {
view.layout(b.getLeft(), 300, b.getRight(), 300+view.getHeight());
public void onAnimationRepeat(Animation animation) { }
public void onAnimationStart(Animation animation) { }
a.setDuration(500);
//如果setFillAfter为ture是不会出现闪动的,但是下一次拖拽就不正常
//a.setFillAfter(true);
view.startAnimation(a);
a.startNow();
请大家指点一下,这种问题该如何解决
呵呵,解决了,自问自答吧
在onAnimationEnd里加view.clearAnimation();
清楚动画,然后再移动位置,这样就不会闪烁了
抱歉,view.clearAnimation();
虽然不会出现闪动现象,但是如果view里面有listView,拖动list到边缘出现黄色高光(2.3版)会异常,黄光出现过渡不自然,就像由32位颜色变到了24位,估计是由于动画被强制清除的原因。
解决办法是不用view.clearAnimation(),
在onAnimationEnd里加
TranslateAnimation anim = new TranslateAnimation(0,0,0,0);
view.setAnimation(anim);
既不闪动,也不会出现list拖动黄光异常现象。
Android: 解决动画完成后位置恢复到初始位置的问题
android动画结束后停在结束位置
Animation结束后自动恢复到原状态
TranslateAnimation动画结束后控件移动位置
TranslateAnimation动画结束后的位置问题(已解决)
android中关于位移动画TranslateAnimation开始和结束时闪动问题的记录
安卓动画——让控件停留在动画结束的位置
没有更多推荐了,android&TranslateAnimation&的使用
android中的动画提供了两种实现方式,一种时通过xml,另一种是通过代码实现,使用代码实现有很强的灵活性,因此我使用的是代码方式实现的。
移动动画:
TranslateAnimation(float fromXDelta, float toXDelta, float
fromYDelta, float toYDelta)
参数的含义:float
fromXDelta 动画开始的点离当前View
X坐标上的差值&
float toXDelta 动画结束的点离当前View
X坐标上的差值&
float fromYDelta 动画开始的点离当前View
Y坐标上的差值&
float toYDelta 动画开始的点离当前View Y坐标上的差值
直接看代码吧:
public class MainActivity extends Activity {
&&& ImageView
TranslateAnimation mAnimation =
&&& private int
index = 0;
&&& protected
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
&&& mImView =
(ImageView)findViewById(R.id.imageView);
findViewById(R.id.move_left).setOnClickListener(new
OnClickListener() {
&&& public void
onClick(View arg0) {
fromXDelta = index * 100;
&&& int toXDelta
= (index - 1) * 100;
Log.d("test", "from : "+ fromXDelta + ", to : "+toXDelta);
&&& mAnimation =
new TranslateAnimation(fromXDelta, toXDelta, 0, 0);
mAnimation.setDuration(1500);
mAnimation.setFillAfter(true);
mImView.startAnimation(mAnimation);
findViewById(R.id.move_right).setOnClickListener(new
OnClickListener() {
&&& public void
onClick(View arg0) {
fromXDelta = index * 100;
&&& int toXDelta
= (index+1) * 100;
Log.d("test", "from : "+ fromXDelta + ", to : "+toXDelta);
&&& mAnimation =
new TranslateAnimation(fromXDelta, toXDelta, 0, 0);
mAnimation.setDuration(1500);
mAnimation.setFillAfter(true);
mImView.startAnimation(mAnimation);
布局文件:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="move left"
android:id="@+id/move_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="move right"
android:id="@+id/move_right"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
&&&&&&&&&&&
android:id="@+id/imageView"
&&&&&&&&&&&
android:layout_width="wrap_content"
&&&&&&&&&&&
android:layout_height="wrap_content"
&&&&&&&&&&&
android:src="@drawable/ic_launcher"
&&&&&&&&&&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。博客分类:
Android中利用TranslateAnimation移动时,不设置mTranslateAnimation.setFillAfter(true);,而利用视图的setLayoutParams来重新定位。。。。因为mTranslateAnimation.setFillAfter(true);之后,视图的事件消失,并且还有很多其他的问题。
而我们采用Animation.AnimationListener,在onAnimationEnd的方法中改变当前视图利用LayoutParams的setMargins方法重新定位位置。
代码段,仅供参考。
public void move() {
jqkjScroll.setEnabled(true);
Animation mTranslateAnimation = new TranslateAnimation(0, 0, 0,
-showheight);// 移动
mTranslateAnimation.setDuration(minute);
// mAnimationSet.setFillAfter(true);
// mTranslateAnimation.setFillAfter(true);
mTranslateAnimation
.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
if (isNoMenu == false) {
curent.setVisibility(View.GONE);
public void onAnimationEnd(Animation animation) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
contentLayout.getLayoutParams());
contentImg.setImageResource(R.drawable.open);
params.setMargins(0, endY - startY, 0, 0);
contentLayout.clearAnimation();
contentLayout.setLayoutParams(params);
jqkjScroll.scrollTo(0, 0);
isMoveORShowing =
public void onAnimationRepeat(Animation animation) {
contentLayout.startAnimation(mTranslateAnimation);
public void show() {
jqkjScroll.setEnabled(false);
Animation mTranslateAnimation = new TranslateAnimation(0, 0, 0,
showheight);// 移动
mTranslateAnimation.setDuration(minute);
mTranslateAnimation
.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
if (isNoMenu == false) {
curent.setVisibility(View.VISIBLE);
public void onAnimationEnd(Animation animation) {
contentImg.setImageResource(R.drawable.close);
isMoveORShowing =
contentLayout.clearAnimation();
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
contentLayout.getLayoutParams());
params.setMargins(0, showheight + endY - startY, 0, 0);
contentLayout.setLayoutParams(params);
public void onAnimationRepeat(Animation animation) {
contentLayout.startAnimation(mTranslateAnimation);
浏览: 108636 次
来自: 重庆
我就说嘛,照着改了个出来,看着总感觉有点不对劲,果然有坑。
确实解决问题了,这个结果响应,文档写的确实有些模糊,这里的方法 ...
macleo 写道话说微信的sdk,坑爹坑的厉害啊
真是有点坑 ...
macleo 写道话说微信的sdk,坑爹坑的厉害啊现在好多了。 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'Android 动画Animation简单总结 - 简书
Android 动画Animation简单总结
最近看到了一些关于Animation的内容,总结一下留待后用;
我们在APP中看到的动画一般都是视图动画,那就先来总结一下视图动画;一般我们使用到的视图动画包括透明动画(AlphaAnimation)、旋转动画(RotateAnimation)、移动动画(TranslateAnimation)和缩放动画(ScaleAnimation)。我们先来看看运行效果图,然后再来呈现代码。
视图动画.gif
不多说了直接上代码
透明动画(AlphaAnimation)
纯java实现:
只需要在对应的button点击事件中添加AlphaAnimation即可:
findViewById(R.id.btn_alpha).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);//透明度从0~1
alphaAnimation.setDuration(1000);//持续时间
v.startAnimation(alphaAnimation);
java和xml结合条件下:
在res/anim下创建alpha.xml如下:
&alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromAlpha="0"
android:toAlpha="1"&
在java代码点击事件中添加上:
v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha));
剩下的3个动画也和上面的方法类似,下面就简单的介绍一下
旋转动画(RotateAnimation)
纯java实现:
只需要在对应的button点击事件中添加RotateAnimation即可:
RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
//上述参数解释分别为:旋转起始角度,旋转结束角度,相对与自身,x轴方向的一半,相对于自身,y轴方向的一半
rotateAnimation.setDuration(1000);
v.startAnimation(rotateAnimation);
java和xml结合条件下:
在res/anim下创建rotate.xml如下:
&rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"&
在java代码点击事件中添加上:
v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate));
移动动画(TranslateAnimation)
纯java实现:
TranslateAnimation translateAnimation = new TranslateAnimation(0,80,0,80);
//起始x轴,最终x轴,起始y轴,最终y轴
translateAnimation.setDuration(1000);
v.startAnimation(translateAnimation);
java和xml结合条件下:
在res/anim下创建translate.xml如下:
&translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="80"
android:toYDelta="80"&
&/translate&
在java代码点击事件中添加上:
v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate));
缩放动画(ScaleAnimation)
纯java实现:
ScaleAnimation scaleAnimation = new ScaleAnimation(0,1,0,1);//x轴0倍,x轴1倍,y轴0倍,y轴1倍
scaleAnimation.setDuration(1000);
v.startAnimation(scaleAnimation);
java和xml结合条件下:
在res/anim下创建scale.xml如下:
&scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="0"
android:fromYScale="0"
android:toXScale="1"
android:toYScale="1"&
在java代码点击事件中添加上:
v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale ));
纯java实现:
AnimationSet animationSet = new AnimationSet(true);//共用动画补间
animationSet.setDuration(1000);
AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1);
alphaAnimation.setDuration(1000);
animationSet.addAnimation(alphaAnimation);
TranslateAnimation translateAnimation = new TranslateAnimation(0, 80, 0, 80);
translateAnimation.setDuration(1000);
animationSet.addAnimation(translateAnimation);
v.startAnimation(animationSet);
java和xml结合条件下:
在res/anim下创建blend_set.xml如下:
&set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:shareInterpolator="true"&
&!--透明度动画--&
android:duration="1000"
android:fromAlpha="0"
android:toAlpha="1"&
&!--移动动画--&
&translate
android:duration="1000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="80"
android:toYDelta="80"&
&/translate&
在java代码点击事件中添加上:
v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.blend_set));
先看效果图:
布局动画.gif
根据示意图我们发现button按钮出现的时间是不一样的,这就是对整个页面布局添加了动画之后的效果;我们来看一下如何实现的:
RelativeLayout activity_main = (RelativeLayout) findViewById(R.id.activity_main);
ScaleAnimation scaleAnimation = new ScaleAnimation(0,1,0,1);
scaleAnimation.setDuration(1000);
LayoutAnimationController layoutAnimationController = new LayoutAnimationController(scaleAnimation,0.5f);//动画效果、每个动画效果之间延迟一半时间运行
layoutAnimationController.setOrder(LayoutAnimationController.ORDER_RANDOM);
//加载顺序:包括从上倒下(ORDER_NORMAL)、从下到上(ORDER_REVERSE)、随机(ORDER_RANDOM)
activity_main.setLayoutAnimation(layoutAnimationController);
先设置动画效果
利用LayoutAnimationController ()方法添加上动画、延迟时间以及出现顺序
然后找到布局对应的layout文件,使用setLayoutAnimation()方法即可
在第二页中的listview实现的动画效果是在xml中设置的,也比较简单:
在res/anim下创建list_animation.xml文件(借用上面的scale.xml文件):
&layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/scale"
android:delay="0.5"&
&/layoutAnimation&
在lsitview的xml文件下添加一句:
android:layoutAnimation="@anim/list_animation"
OK,以上功能完全实现~
1 背景 不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今天来一发Android应用的各种Animation大集合。英文厉害的请直接移步参考Android Developer。 Android系统提供了很多丰富的API...
心灵鸡汤:真正成功的人生,不在于成就的大小,而在于你是否努力地去实现自我,喊出自己的声音,走出属于自己的道路。 如果大家想看更多关于Android基础夯实系列博文,请移步到我的博客:Ryane's Blog 摘要 不积跬步,无以至千里;不积小流,无以成江海。学习任何东西我们...
引言:这篇文章简单介绍一下Android动画的基本写法和一些要注意的地方,帮助大家更加容易使用Android动画。由于网上有太多更加详细、篇幅更大的文章,这里不做太多太详细的解释性的内容,因为对于Android动画,难点在于:自定义View动画、自定义属性动画集、差值器、估...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
今天看到有人写某女星因癌逝世的文章,讲得都灰常有道理,但我们大部分人其实还不到拼工作不要命的程度。 健康对每个人都很重要。小部分人的健康毁在废寝忘食只顾风雨兼程,而大部分人的健康则毁在不愿约束自己的本能。 我们该起床的时候,本能会想要多睡会儿;我们该忌口的时候,本能会想人生...
小时候,我是一点点。外公驼着我去小店,给我买威威。外婆带我到河边洗衣服。我抓小虾,她洗衣服。
后来,我长大了一点点。外公走了,走的无声无息。我也离开了外婆。从每天都粘着外婆,变成了一年才见外婆几次面。
再后来,我又大了一点点,上学了。每次见到外婆,外婆都说要...
8月14日,在2016年里约奥运会女子跳水3米板决赛中,中国选手何姿获得亚军,施廷懋获得冠军,但是成为头条的不是奖牌,是中国跳水队员秦凯向队友何姿求婚成功,结束了6年的爱情长跑,这么红红火火的求婚,不仅成为现场焦点,还收获了众人的欢呼和祝福! 这场求婚成为全场的焦点这场有预...
从小我就是一个超级没有安全感的人,除去书,父母就是我的精神支柱。所幸,他们都挺开明,从来不强求我干嘛。就算我快25岁了还没谈朋友,他们也没像别的父母一样“步步紧逼”。他们给我营造的生活环境很宽松,没有条条框框,甚至是没有限制,我几乎能干我所有我喜欢的事儿,旅游、打球、学琴、...}

我要回帖

更多关于 Android滑动更换活动页面 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信