Articles of animation

Android:使用展开animation添加视图(不闪烁)

我想使用扩展animation向视图组添加视图,因此添加的视图开始非常小并占用越来越多的空间,直到达到其完整大小(可能在此过程中移动其他视图)。 在尝试不同的方法后,我想出了下面的解决方案。 投票,如果它可以帮助您或请发布更好的选择。 我相信必须有一个更简单的方法来做到这一点。 有关更多信息,请参阅此类和此类的post。 这是我添加视图并启动animation的方法: // Trick: set height to 1 so the view doesn’t take its full size at the beginning. // (0 doesn’t work, I don’t know why) container.addView(view, LayoutParams.MATCH_PARENT, 1); Animation expansion = createExpansion(view); expansion.setDuration(200); view.startAnimation(expansion); createExpansion()方法: public static Animation createExpansion(View view) { return new SizedHeightScaleAnimation(view, 0, 1, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, […]

RecyclerView项目与同一活动中的CollapsingToolbar之间的共享元素animation

在我的应用程序中,我有一个通过RecyclerView适配器显示的项目列表。 如果我单击某个项目,则会在同一个Activity中启动一个新的Fragment 。 我的项目的布局和我的活动看起来(简化)像这样: 活动布局: 物品布局: 现在,如果通过项目单击启动新片段,我想将项目图像的animation添加到CollapsingToolbarLayout的ImageView 。 我阅读了有关ShareElementanimation的文章 ,但这不适用于此,因为这不是真正的ShareElementanimation。 目标ImageView不在新片段中,我也不必开始新活动(我只在新Fragment显示目标ImageView )。 那么在这种情况下如何创建这样的animation呢?

为什么硬件加速不能在我的View上运行?

我正在使用Facebook的Rebound库来复制他们的聊天头实现中看到的有弹性的animation。 问题是,大多数时候animation都会断断续续。 一些图片将更好地解释这一点。 这是黄油般流畅的聊天头像: 这是我的尝试(注意白色View的animation几乎跳过所有帧): 偶尔它会顺利运行: 下面是我目前正在使用的代码(如果你想快速设置它,整个项目都在Github上)。 我猜这与我的View上没有正确启用硬件加速有关。 我的SpringSystem有2个Spring ,一个用于“bubble”(Android图标),另一个用于内容(点击气泡时显示的白色View )。 如何解决这个问题的任何帮助将不胜感激。 谢谢。 AndroidManifest.xml : … AppService.java : // the following code is in AppService#onCreate() // AppService extends android.app.Service // full code at https://github.com/vickychijwani/BubbleNote mContent.setLayerType(View.LAYER_TYPE_HARDWARE, null); final Spring bubbleSpring = system.createSpring(); bubbleSpring.setCurrentValue(1.0); bubbleSpring.addListener(new SpringListener() { @Override public void onSpringUpdate(Spring spring) { float value = (float) […]

带插补器的无限ObjectAnimator …如何仅加速初始启动?

我有一个具有无限重复模式的对象animation师。 我想在它第一次启动时加速它…而不是每次它都重复它 怎么能实现这一目标? 我的代码: universeMovement1 = ObjectAnimator.ofFloat(universeImageView, “x”, 0, sw); universeMovement1.setDuration(UNIVERSE_MOVEMENT_TIME); universeMovement1.setRepeatCount(ObjectAnimator.INFINITE); universeMovement1.setRepeatMode(ObjectAnimator.RESTART); universeMovement1.setInterpolator(new AccelerateInterpolator());

animation不会在当前可见的ListView项目中启动

我被卡住了,我无法在任何地方find解决方案。 🙁 我的ListView(GridView)的每个项目的布局中都有一个ImageView,由BaseAdapter提供。 加载图像后,我使用加载的BitmapDrawable分配给ImageView imageView.setImageDrawable( newImage ); popup的项目没有任何问题。 但是如果我通过使用TransitionDrawable OR指定一个简单的animation来分配新的BitmapDrawable: //this is inoperative – animation will not start for currently displayed items! No solution found 🙁 Animation a = LibResource.getResourceAnimation( activity, R.anim.fade_in ); imageView.setImageDrawable( newImage ); imageView.startAnimation( a ); animation不会启动我的GridView的当前显示的项目。 如果我向下滚动GridView并将其滚动回上面提到的项目,则会显示图像并执行animation! 我已经尝试过以下修复: imageView.invalidateDrawable( newImage ); imageView.invalidate(); 在分配animation后我也尝试了以下语句 – 当然,我在UI-Thread上调用它们,在分配和启动UI-THREAD上的animation之后: myGridView.invalidate(); myGridView.invalidateViews(); myGridView.getAdapter().notifyDataSetChanged(); 如上所述,此问题仅发生在ListView中的可见项目中。 为什么即使在所有涉及的视图上调用invalidate()等之后,Animation或TransitionDrawable也无法启动? 问题出现在我的XPeria-Arc-S(API级别10)和Android-Emulators […]

setOffscreenPageLimit()如何通过保留更多的屏幕外碎片来提高ViewPager的性能?

我有一个ViewPager控制五个Fragments 。 当我从索引1处的Fragment滑动到索引0处的Fragment时,我想要消除animation中的短暂停顿 。 目前,我没有调用setOffscreenPageLimit() ,所以我知道ViewPager在Fragment 1处于空闲状态时Fragment 0被保存在内存中,因为屏幕外页面限制默认为1(一个在当前Fragment一面)。 这是令人困惑的地方。 如果我在我的ViewPager上调用setOffscreenPageLimit(4) , 则从1到0animation的滑动中的暂停消失 – animation是平滑的 。 因此,我得出结论,不知何故,将Fragments 2-4保留在内存中可以将animation从Fragment 1改进为Fragment 0。 保留Fragments 2-4如何改进从Fragment 1到Fragment 0的滑动animation? 编辑 我运行TraceView,使用onPageScrollStateChanged(int state)来确定何时开始和停止跟踪,如下所示: @Override public void onPageScrollStateChanged(int state) { if (state == 1 && mViewPager.getCurrentItem() == 1) { Debug.startMethodTracing(“ViewPagerTesting”, 100000000); } if (state == 0 && mViewPager.getCurrentItem() == 0) { Debug.stopMethodTracing(); } […]

在Android中实现类似于iOS的旋转活动指示器

我正在尝试实现类似于我在Android下面放置的旋转活动。 我相信我应该使用ProgressDialog。 我的问题源于如何实际操作ProgressDialog看起来像活动指示器。 欢迎任何想法。 一个例子的链接甚至会更好。 谢谢。 重新编辑: myProgress.java public class myProgress extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ProgressDialog d = (ProgressDialog)findViewById(R.id.progres); main.xml中

Android – 使用animation的工件

应用此处的3D转换时,我在屏幕上遇到了视觉瑕疵问题。 我改变了这个,所以它围绕x轴而不是y旋转。 当我进行完整的180度旋转(顶部远离你时),我会在其应用的每个其他视图的底部区域(底部10-20%)处获得单个像素线伪影。 我使用选择器作为LinearLayout的背景,然后将此animation应用于它。 谁能想到这个问题的快速解决方案? 谢谢你的帮助!

在Android中启动AnimationDrawable

我应该在哪里开始一个需要在活动显示时AnimationDrawable ? 开发人员指南建议使用onWindowFocusChanged ,但当活动是onWindowFocusChanged一部分时,并不总是调用它。 我引用: 重要的是要注意,在Activity的onCreate()方法期间无法调用在AnimationDrawable上调用的start()方法,因为AnimationDrawable尚未完全附加到窗口。 如果您想立即播放animation而不需要交互,那么您可能希望从Activity中的onWindowFocusChanged()方法调用它,当Android将窗口置于焦点时将调用它。

TextView在Android Market中扩展animation

任何人都可以指向解决方案如何在Android Marketanimation中制作描述TextView的扩展animation? 将TextView包装到FrameLayout中,单击“更多”标签后会扩展。