Articles of animation

在Android上双启动onAnimationEnd

我正在尝试创建一种幻灯片放映。 为此,我需要在每个animation结束时通过更改图像来使循环成为animation。 但无论出于何种原因,每个animation都会发生两次相同的事件 public cPhotoSlide(Activity _activity, DBHelper _helper, int idMenu, cItemViewer _ItemViewer){ activity = _activity; helper = _helper; ImageManager = helper.ImageManager; ItemViewer = _ItemViewer; cursor = 0; itemIds = ChildsItemsToTable(idMenu); MainLayout = (RelativeLayout) activity.findViewById(R.id.fon); SliderObj = activity.getLayoutInflater().inflate(R.layout.photo_slide, MainLayout, true); SlideImage = (ImageView) SliderObj.findViewById(R.id.slide_image); SlideImage.setImageBitmap(ImageManager.loadImage(activity.getApplicationContext(),itemIds.get(cursor))); animationSlide = (AnimationSet) AnimationUtils.loadAnimation(activity.getApplicationContext(), R.anim.slide); animationSlide.getAnimations().get(1).setAnimationListener( new AnimationListener() { public void […]

为什么Viewanimation有时会被剪裁?

我有一个FrameLayout包含一个子类SurfaceView和一个ImageView。 我想在ImageView上做一个TranslateAnimation。 我可以使其工作的唯一方法是向FrameLayout添加一个空的View。 否则,在animation期间,ImageView会被剪裁(到animation开始时ImageView位置的边界)。 我很好奇为什么空兄弟View允许ImageView正确animation。 使其工作的行在下面的代码中标有注释。 public class Test5 extends Activity { private static final String TAG = “Test5”; private MySurfaceView mMSV; private ImageView mRectView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mMSV = new MySurfaceView(this); mRectView = new ImageView(this); ShapeDrawable sd = new ShapeDrawable(new RectShape()); sd.getPaint().setColor(Color.RED); sd.setIntrinsicWidth(300); sd.setIntrinsicHeight(100); mRectView.setImageDrawable(sd); FrameLayout frameLayout = new FrameLayout(this); […]

将animation添加到ListView以展开/折叠内容

我有一个列表视图,它使用自定义适配器来显示我的自定义内容。 它的布局如下。 我希望listview只显示带有ids itemimage和项目描述的视图,保持itemtext隐藏。 我们的想法是在列表的每个项目上都有一个onclicklistener,以便扩展该项目,使其显示itemtext内容。 我知道我应该使用补间animation来扩展/折叠每个项目,但我无法弄清楚如何做到这一点。 任何人都可以帮助我吗? 如果您需要更多代码段,请随时提出。 提前致谢。

查看animation不会改变触摸区域

在TranslateAnimation之后,翻译的视图上的OnClickListener不会被翻译。 我尝试在自定义LinearLayout中覆盖getHitRect但没有成功。 我也尝试使用touchdelegate和在整个互联网上find的所有其他建议,但没有成功:) TranslateAnimation open = new TranslateAnimation(0, displayWidth – ivTimelineWidth, 0, 0); open.setDuration(1000); open.setFillAfter(true); llMapContent.startAnimation(open); 请帮帮我 :) 朱利安

如何在android中制作流畅的帧animation?

我做了一个帧animation。 但是图像之间的过渡很糟糕。 如何对其应用交叉渐变效果? 使用TransitionDrawable我得到了正确的结果,但一次执行后就会停止。 任何人都知道如何解决它? public void startAnimation() { if (logoAnimation != null) { if (logoAnimation.isRunning()) { logoAnimation.stop(); } logoAnimation.start(); } } private int setLogoAnimation(int animationID, int targetID) { imageView = (ImageView) window.findViewById(targetID); imageView.setImageResource(animationID); logoAnimation = (AnimationDrawable) imageView.getDrawable(); if (imageView != null && logoAnimation != null) { return 1; } else { return 0; } […]

Android NYTimes Swipe Animation / Gesture

NYTimes有一个非常有趣的翻页function。 您可以从左向右/向右滑动以查看其他项目(这很容易实现)。 即使您没有越过阈值,视图也会随手指一起移动,并在您抬起手指后回滚到初始视图。 他们如何做到这一点? 第二:这可以在TabActivity上完成吗? 谢谢

在长按中将Android中的图标作为iPhone摇动

我正在实现一个应用程序,我想在iPhone中摇动图标。 我该如何实现呢? 我在这里附上了animation的代码。 请建议我任何解决方案。 我已经尝试了已经在堆栈溢出中指定的soln,但它在我的情况下不起作用。 此类是一个非活动类,其中编写了此animation集。 protected void animateDragged(){ View v = getChildAt(dragged); int x = getCoorFromIndex(dragged).x + childSize / 2, y = getCoorFromIndex(dragged).y + childSize / 2; int l = x – (3 * childSize / 4), t = y – (3 * childSize / 4); v.layout(l, t, l + (childSize * 3 / […]

在活动之间转换时是否可以使用翻转animation?

在活动之间转换时,例如调用startActivity(); 或者使用back按钮时,屏幕从侧面滑入。 有没有办法改变这个? 我有一个类似闪存卡的应用程序,所以当我从活动A转移到活动时,BI希望屏幕翻转就像转动真正的闪存卡一样。 有没有办法开箱即用? 或者这需要一些自定义animation?

Androidanimation留下文物

我的项目中有一个奇怪的animation问题。 在下面发布的屏幕截图中,您可以清楚地看到Totals卡在animation上留下某种痕迹。 此问题可在运行4.2.2的库存Nexus 7上重现。 Totals卡有一个Google Now风格的animation。 重要的是要注意Totals卡的容器是片段,横向屏幕截图中左侧的菜单是不同的片段,底部按钮是片段附加到的活动的一部分。 我似乎无法在网上find解决方案,我已经尝试了setFillAfter“true”并抵消了animation的开头。 当按下其中一个按钮时,底部活动按钮(“上一个”和“下一个”)中的轨迹将消失。 这是Totals Fragment的onCreateView中的代码: final View view = inflater.inflate(R.layout.fragment_totals, container, false); Fonts.setRobotoThinFont(getActivity(), view); final LinearLayout mContainer = (LinearLayout) view.findViewById(R.id.container); final View mCard = inflater .inflate(R.layout.view_simpletotal, mContainer, false); Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.card_animation); mContainer.addView(mCard); mCard.startAnimation(animation); return view; 任何帮助将非常感激!

当我反向运行animation时,Android会跳过onDraw()

我有一个Sliding Fragments DevByte的实现 。 除了将片段滑入视图之外,我想在它遮挡的内容上画一个阴影。 我已经从video中修改了FractionalLinearLayout ,以屏幕宽度的两倍来measure自身,并将其子项放在右半部分。 在animation循环期间,我在左半部分绘制一个增加alpha的黑色矩形,并将我的X坐标设置为负值,使右半部分进入视图。 我的问题是,当我将内容滑入视图时,这种方法很好,但是当我将内容滑回到视图之外时,它会失败。 在路上,我得到了我想要的行为:翻译和变暗的阴影。 在出路的时候,我只得到了翻译,阴影仍然只是animation中的第一帧颜色。 我在日志记录中看到的是,在进入的过程中, setPercentOnScreen()和onDraw()方法被交替调用,正如预期的那样。 然而,在出路的时候,我接到一次调用setPercentageOnScreen() ,然后调用onDraw() ,然后只调用setPercentOnScreen() 。 Android正在优化绘图,但我无法弄清楚原因。 更新:有趣的是,我只在运行Android 4.4的模拟器上看到此行为。 运行4.0.3和4.3的仿真器在两个方向上按预期运行animation。 旧的Nexus 7出现了问题,不同的模拟器4.4没有。 它似乎在设备上是一致的,但在设备之间有所不同。 再次更新:我已经提取了一个示例项目并将其放在GitHub上: barend / android-slidingfragment 。 GitHub上的自述文件包含十几个设备上的测试结果。 对于模拟器,问题与“启用主机GPU”function相关,但仅限于Jelly Bean和KitKat; 不在ICS上。 再次更新:进一步测试显示问题发生在运行Jelly Bean及更高版本的物理设备上,以及启用了“使用主机GPU”运行Jelly Bean或更高版本的ARM仿真器上。 无论Android版本如何,在没有“使用主机GPU”的x86仿真器和ARM仿真器上都不会发生这种情况。 我的测试的确切表可以在上面链接的github项目中find。 // Imports left out public class HorizontalSlidingLayout extends FrameLayout { /** * The fraction by which the […]