Articles of animation

fillAfter和fillEnabled不能在Android视图animationXML中工作

我很好奇这个行为…我目前在animationXML中设置两个值: android:fillEnabled="true" android:fillAfter="true" 但是,animation完成后,转换不适用…它总是重置。 当我通过代码以编程方式设置它似乎工作: animation.setFillEnabled(true); animation.setFillAfter(true); 所以我只是好奇这是如何工作的,因为我宁愿将它设置在XML上。 谢谢!

开始逐帧animation

我有一个关于开始逐帧animation的基本问题。 当我直接从我的代码调用AnimationDrawable.start()方法时,它似乎不工作。 public void onCreate(Bundle savedInstanceState) { … mAnimation.start(); … } 但是如果我把这一行放在button的onClick()callback方法中,按下buton就会启动animation。 为什么这行代码不工作? 谢谢! 码: public class MyAnimation extends Activity { @Override public void onCreate(Bundle savedInstanceState) { AnimationDrawable mframeAnimation = null; super.onCreate(savedInstanceState); setContentView(R.layout.my_animation); ImageView img = (ImageView) findViewById(R.id.imgMain); BitmapDrawable frame1 = (BitmapDrawable) getResources().getDrawable( R.drawable.splash1); BitmapDrawable frame2 = (BitmapDrawable) getResources().getDrawable( R.drawable.splash2); int reasonableDuration = 250; mframeAnimation […]

如何获取animation开始的视图对象…?

我有3个图像视图,我开始相同的animation(翻译) 我有animation监听器,在onAnimationEnd(animationanimation)方法中, 我想知道在哪个图像视图的animation结束..? 从animation对象我怎么知道它是从哪里开始的? 提前致谢..!

AlphaAnimation不起作用

我一直在寻找解决我的问题。 但是我的代码似乎没问题。 我将尝试解释:我的布局定义中有一个与android:alpha =“0”的TextView。 我想(点击图像时)显示TextView与AlphaAnimation,从0.0f到1.0f。 我的问题是,当我点击图片,没有任何反应。 但奇怪的是,如果我在布局定义中将其设置为1,并单击图像,则可以看到animation(alpha 1 – > alpha 0 – > alpha 1)。 我究竟做错了什么? 我的代码: TextView tv = (TextView) findViewById(R.id.number); AlphaAnimation animation1 = new AlphaAnimation(0.0f, 1.0f); animation1.setDuration(1000); animation1.setFillAfter(true); tv.startAnimation(animation1); 提前致谢。

Android – 如何停止活动更改之间的animation

我在我的应用程序中有多个不同的活动,我不想在活动之间切换时任何过渡animation。 下面是我如何改变活动之间: Intent i = new Intent(FirstActivity.this, SecondActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(i); 这是第一次开始一个新的活动的作品。 没有animation,但是当我回到已经启动的Activity时,似乎忽略了“Intent.FLAG_ACTIVITY_NO_ANIMATION”,并且发生了默认animation。 我似乎无法弄清楚为什么会发生这种情况。

使用java代码更改animateLayoutChanges属性

我正在使用布局更改animation的Android应用程序。 我想知道的是,有没有人知道如何改变使用Java代码“andorid:animateLayoutChanges”proberty。 我目前的价值是 android:animateLayoutChanges="false" 我想在活动onResume()方法中将其更改为“true”。

在最终animation位置保持animation视图

所以我使用animation来激活视图: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <translate android:duration="1000" android:fromYDelta="0%" android:toYDelta="-75%" /> </set> 它在视觉上做我想要的,但我也想冻结这个animation的结果。 就像我需要以某种方式得到结果布局参数(或其他东西?)animation后,并将其设置为布局。 假设Y坐标的布局从0变为100,但是我并不知道什么是坐标,什么是坐标。 我需要得到结果的坐标,并将其设置为布局因为如果不这样做布局返回到animation后的初始位置,但我需要使它保持在新位置,而不是返回。 另外我需要2.3.x兼容的解决scheme。 更新1 我也试过NineOldAndroids: ObjectAnimator.ofFloat(rootWrapper, "translationY", -rootWrapper.getHeight()*75/100).start(); 这animation视图和视图停留在animation位置 – 这正是我想要实现的。 然而,所有的控制都在虚拟的位置上。 即使你的布局只能看到其底部的25%,如果我点击那个空白的屏幕区域,那么75%的剩余屏幕看起来是空的,然后onClick触发button的(这是b4animation)。 如果设置了xml-animtaions,也会发生同样的情况 animation.setFillAfter(true); 如何解决这个问题? 所有的控件必须随着视图移动。 更新2 代码: public void showAbout(){ final Animation animShow = AnimationUtils.loadAnimation(this, R.anim.about_in_from_bottom); animShow.setFillAfter(true); //ObjectAnimator.ofFloat(rootWrapper, "translationY", -rootWrapper.getHeight()*75/100).start(); animShow.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation […]

有没有一种方法来监听AnimatedVectorDrawables中的animation结束

我已经创build了一个AnimatedVectorDrawable,它工作得很好,现在我正在寻找一种方法来更改animation或完成后隐藏视图。 我希望有一个听众,但看起来不像。 有人可以帮忙吗? 编辑 所以我find了解决方法,但不是一个非常优雅的方式。 我所做的是创build一个线程并进行轮询,如果animation正在运行。 new Runnable() { public void run() { while(mLoop) { if(mAnimatedVectorDrawable.isRunning()) { Thread.sleep(mPollingInterval); } else { mLoop = false; // TODO what ever } } } }; 如果有人find更好的解决scheme,请分享。

ViewPager片段 – 共享元素转换

我正在开发的应用程序显示图像的网格。 当你点击一个图像,它进入细节视图。 详细信息视图包含一个ViewPager,允许您在网格中的每个图像之间滑动。 这是通过传递path列表(包含网格中的每个图像),以及点击图像的偏移量,以便ViewPager可以设置为初始显示该页面来完成的。 在ViewPager的当前偏移量页面的片段内部有一个共享元素转换的最佳方式是什么? 网格(RecyclerView)图像应展开为当前页面中的全屏图像。 我看到了推迟和恢复活动转换的能力,所以应用程序将等待显示共享元素转换,直到从磁盘加载图像。 但是我希望能够使视图寻呼机中正确的页面变成animation,并且在用户返回时(因为您可以在页面之间滑动)而退出到当前页面。 如果你现在刷到不同的页面,最初的页面是什么animation回到网格。 目前,我使用格式为“image_ [index]”的transitionName为视图分页器的片段中的每个图像分配一个。 当我开始细节活动时,我使用相同的transitionName,索引是偏移量。 与此相关,我也想知道如何使长时间的按下涟漪。 当您更改视图的激活状态时,似乎取消了波纹。 我想要一个类似于Gmail的效果,纹波重新开始,并在长按完成后快速结束并触发激活状态。

在Android中以animation方式将ImageView移动到不同的位置

我在RelativeLayout有几个ImageView 。 现在,当用户点击任何一个ImageView,我希望它被微妙的animation移动到指定的位置。 例如; 我最初设置与ImageView关联的LayoutParams边距为layoutparams1.setMargins(90,70,0,0); 然后将其添加到布局。 而当imageview被挖掘,我想它的新位置是200,200 ,animation。 那么,这可能吗? 如果是,那么怎么样? 请注意,我有两个RelativeLayout和它的所有子ImageView以编程方式创build。 而且我对android开发很陌生,因此预计会有详尽的答案。