Articles of android animation

CursorAdapter支持ListView删除animation“闪烁”删除

我正在尝试使用SwipeToDismissUndoList库实现滑动删除和在ListView中,该库扩展了Roman Nurik的SwipeToDismiss示例。 我的问题在于删除animation。 由于ListView由CursorAdapter支持,因此animation触发onAnimationEnd的onDismiss回调,但这意味着animation在CursorAdapter使用delete更新之前已经运行并重置。 这最终看起来像是闪烁给用户,他们通过将其擦掉来删除一个音符,然后视图返回一瞬间然后消失,因为CursorAdapter已经拾取了数据更改。 这是我的OnDismissCallback : private SwipeDismissList.OnDismissCallback dismissCallback = new SwipeDismissList.OnDismissCallback() { @Override public SwipeDismissList.Undoable onDismiss(ListView listView, final int position) { Cursor c = mAdapter.getCursor(); c.moveToPosition(position); final int id = c.getInt(Query._ID); final Item item = Item.findById(getActivity(), id); if (Log.LOGV) Log.v(“Deleting item: ” + item); final ContentResolver cr = getActivity().getContentResolver(); cr.delete(Items.buildItemUri(id), null, null); mAdapter.notifyDataSetChanged(); […]

animation中的延迟(TranslateAnimation)

有没有办法让Animation暂停半秒? 我正在尝试使用TranslateAnimation API制作无限animation。 所以,我使用RepeatCount作为Infinite 。 我还注意到有一个setStartOffset(…)方法,它涵盖了我希望延迟启动animation的情况。 但是,我无法在每次“重启”之前find延迟的方法。 由于animation会发生无限次,每次animation重新启动时我都需要延迟。 有任何想法吗? 谢谢!!

Android使用animation增长LinearLayout

我正在尝试使用animation来使布局显示在屏幕上。 我们的想法是布局将从0开始,并增长到100%。 我有这方面的麻烦,需要一些帮助。 由于某种原因,不执行animation。 这是我的animationXML文件 布局文件非常基本,设计如下 我的活动代码也非常基础 public class MyActivity extends Activity implements Animation.AnimationListener{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void animate(View view){ LinearLayout dialog = (LinearLayout)findViewById(R.id.dialog); dialog.setVisibility(LinearLayout.VISIBLE); Animation animation = AnimationUtils.loadAnimation(this, R.anim.anim); Log.i(“animate”,”Begin Animation”); animation.reset(); // animation.setFillAfter(true); animation.setAnimationListener(this); dialog.setAnimation(null); Log.i(“animate”,”End Animation”); } @Override public void onAnimationStart(Animation animation) { //To change […]

两个imageview之间的animation过渡

一方面我有一个带有两个ImageView的布局: 另一方面,我有一个图像资源列表: static int mImages[] = new int[] { R.drawable.artistes, R.drawable.couple1, R.drawable.couple2, R.drawable.couple3, R.drawable.enfant, R.drawable.manege, R.drawable.manege2, R.drawable.metropolitain, R.drawable.panoramique, R.drawable.sacrecoeur }; 我还有一个由Handler + postDelayed()制作的调度程序,用计时器一个接一个地显示图像。 这工作正常 我的问题是关于从一个图像视图到另一个图像视图的过渡animation,知道我每次都要清理图像视图以避免OutOfMemoryExceptions: 现在我在schduled回调方法中这样做: if (mIndex == mImages.length) { mIndex = 0; // repeat } if (mIndex % 2 != 0) { // pair mImageCross2.setImageResource(mImages[mIndex++]); Utils.crossfade(mImageCross2, mImageCross1, 1000/*duration*/); mImageCross1.setImageResource(0); } else { mImageCross1.setImageResource(mImages[mIndex++]); […]

如何知道一项活动是否在没有过渡的情况下开始?

我有一个用例,我主要通过转换启动一个活动,但从导航抽屉打开它时不是这种情况。 为了保持转换顺利,我有一个Transition.TransitionListener ,在转换完成后我会在其中触发一些UI更新。 所以我有这样的事情: public class SomeActivity extends Activity { public void onCreate(Bundle savedInstanceState){ // … if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition(); sharedElementEnterTransition.addListener(new Transition.TransitionListener() { // … @Override public void onTransitionEnd(Transition transition) { doSomeUiUpdating(); } }); } else { // Pre-Lollipop doSomeUiUpdating(); } } } 这在使用animation启动Activity时效果很好,但是如何知道Activity是否在没有转换的情况下启动,以便我可以调用doSomeUiUpdating() ? 我确信在Activity , Window , Transition或我忽略的某个地方必须有一个简单的方法。 […]

Android – 使用AnimatorSet缩放animation

官方缩放视图教程使用AnimatorSet放大View 。 随着视野的扩大,它会产生向下运动的错觉。 之后, AnimatorSet只是向后重放以创建缩小的幻觉。 我需要实现的是与此完全相反的。 我需要从扩展视图开始,然后将其缩小为一个向上移动的较小视图: 我似乎不能在示例中使用反转代码。 该示例假定您首先放大视图并展开它,然后将其缩小回原始缩略图图标。 这是我到目前为止所尝试的内容。 我的XML布局是 这是执行缩小操作的方法。 我基本上试图颠倒教程中的过程: private void zoomImageFromThumbReverse(final View expandedImageView, int imageResId, final int duration) { // If there’s an animation in progress, cancel it immediately and proceed with this one. if (mCurrentAnimator != null) { mCurrentAnimator.cancel(); } // Load the low-resolution “zoomed-out” image. final ImageView thumbView […]

在android中更改活动上滑动xmlanimation

我在发布之前阅读了以下链接。 如何在Android中的两个活动之间应用幻灯片animation? 我需要知道如何制作活动幻灯片xmlanimation。 就像他们为fadein和fadeout做的那样。

android棒棒糖animation故障

在运行Android 5(Lollipop)的设备中,我对默​​认布局animation有一种奇怪的行为。 我正在使用具有多个Fragments的活动,这些活动在运行时使用默认的片段管理器进行替换。 当替换旧片段时,我想使用animation来实现流畅的ui流。 在预棒棒糖设备上,animation的效果与预期的一样,但在运行最新操作系统的设备上,片段故障之间的animation: 我尝试使用默认animationxml标记 android:animateLayoutChanges=”true” 因为它不起作用,我使用此代码更改它没有任何效果 mTransaction = mManager.beginTransaction(); mTransaction.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); mTransaction.remove(mFragment); mTransaction.add(R.id.container, mFragment, “fragment”); mTransaction.commit(); 我已经在不同设备和android模拟器中测试了代码。 奇怪的是,它在运行pre-lollipop的设备和运行最新操作系统(5.0.1)的android模拟器中的预期效果。 但它不适用于运行Android 5.0的Nexus 4和Nexus 5等设备 有什么建议么? 任何帮助? 提前致谢 编辑: 它似乎是一个错误取决于使用的设备。 我已经在不同设备(三星Galaxy S4,HTC(One mini2,One M8,Desire S),Nexus 4和5)上测试了代码,它只出现在谷歌nexus设备上。 编辑 解决animation问题的一种解决方法是通过以下方法禁用硬件加速 应用程序清单中的标签。 但使用这个使应用程序非常慢。 解 解决此问题的解决方案是为活动设置背景图像/颜色/可绘制。 看到

Androidanimation翻盖和缓解(打开书本animation)

那里有几个按钮/图像。 点击我想要这样的animation: (图像打开)书籍封面打开,相关的活动/片段在animation中轻松打开,全屏。 有什么想法吗 ? 在厨房应用程序iOS,厨师应用程序的链接发生类似的事情: https : //itunes.apple.com/us/app/cook/id687560846?mt = 8 PS:我已添加animation,gif将在完全加载后不间断运行。

使用单个ObjectAnimator更改多个属性?

我有一个非常复杂的animation我需要编码,我正在使用一堆ObjectAnimators,如下所示: ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(view, TRANSLATION_X, value).setDuration(BASE_DURATION * 2); ObjectAnimator objectAnimator2 = ObjectAnimator.ofFloat(view, TRANSLATION_Y, value).setDuration(BASE_DURATION * 2); 是否可以将X和Y转换分组到同一个ObjectAnimator中,而不是创建一堆它们然后将它们全部添加到AnimatorSet中? 谢谢!