Articles of animation

Android为缩放animation设置轴心点

我试图将视图缩放到一定的大小,但不能完全理解旋转的工作原理。 假设我只想向上缩放视图。 “pivotY”应该有什么价值? 在XML中,它是一个百分比。 如何以编程方式应用枢轴点? 例: ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, “scaleY”, scaleSize); ObjectAnimator pivotY = ObjectAnimator.ofFloat(view, “pivotY”, pivotPoint); AnimatorSet set = new AnimatorSet(); set.PlayTogether(scaleY, pivotY);

开始逐帧animation

我有一个关于开始逐帧animation的基本问题。 当我直接从我的代码调用AnimationDrawable.start()方法时,它似乎不起作用。 public void onCreate(Bundle savedInstanceState) { … mAnimation.start(); … } 但是如果我把这一行放在按钮的onClick()回调方法中,按下按钮就会启动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 […]

在浏览片段时正确处理DrawerLayoutanimation

我正在努力使用DrawerLayoutanimation做奇怪的事情; 如果我没有使用Handler来延迟fragment交易animation,那么汉堡包图标是滞后的并且经常从汉堡包切换到没有animation的箭头。 所以我最终放了一个处理程序,等到汉堡包图标执行animation,但我们不需要等到抽屉接近切换片段时感觉很自然。 我确信有更好的方法可以解决这个问题…… 这是我目前的做法: private void selectProfilFragment() { final BackHandledFragment fragment; // TODO test this again Bundle bundle = new Bundle(); bundle.putString(FragmentUserProfile.USER_FIRST_NAME, user.getFirstname()); bundle.putString(FragmentUserProfile.USER_LAST_NAME, user.getLastname()); bundle.putString(FragmentUserProfile.USER_PICTURE, user.getProfilepic()); bundle.putString(FragmentUserProfile.USER_EMAIL, user.getEmail()); bundle.putBoolean(FragmentUserProfile.USER_SECURITY, user.getParameters().getSecuritymodule().equals(“YES”)); fragment = new FragmentUserProfile(); fragment.setArguments(bundle); mDrawerLayout.closeDrawer(mDrawerLinear); new Handler().postDelayed(new Runnable() { public void run() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.setCustomAnimations(R.anim.pull_in_right, R.anim.push_out_left, R.anim.pull_in_left, R.anim.push_out_right); ft.replace(R.id.content_frame, […]

Androidanimation一个接一个

我在TextView上有两个TranslateAnimations,我希望它们一个接一个地执行。 但是,通过使用下面的代码,只执行第二个代码。 我怎么解决这个问题? TranslateAnimation animation = new TranslateAnimation( Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, -150.0f); animation.setDuration(200); wave.startAnimation(animation); TranslateAnimation animation1 = new TranslateAnimation( Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 150.0f, Animation.ABSOLUTE, 0.0f); animation1.setDuration(200); wave.startAnimation(animation1);

Android:animation自定义视图

编辑2:新的官方培训指南 开发者网站发布了UI相关内容的培训指南,这是索引: animation概述 物业animation概述 animation可绘制的图形 使用animation显示或隐藏视图 使用animation移动视图 使用flinganimation移动视图 使用缩放animation放大视图 使用弹簧物理animation运动 自动animation布局更新 使用转换animation布局更改 创建自定义过渡animation 使用animation启动活动 如果您对以下任何一项感兴趣,请访问以下链接: https : //developer.android.com/training/animation/ 编辑:答案总结 我find了5种在Android中制作animation的方法: 使用“ 属性animation”为View的属性设置animation,以平滑地更改rotation , alpha , scale等。 帧animation ( AnimationDrawable ):快速更改图片,使其看起来像animation 使用矢量 ( VectorDrawable )设计图像,并通过AnimatedVectorDrawable随时间编辑它们来制作 animation 。 覆盖 View上的onDraw()并通过在canvas中绘制来执行自定义绘图 。 使用Lottie ,从After Effects再现animation。 LottieFiles提供了许多animation。 但是,Android也提供了一些内置工具 ,例如Scenes (允许您在共享Views多个布局之间设置转换animation), Shared elements (可以让您将View从一个Activity传递到另一个Activity )等等 API 21中添加了许多(如果不是全部)这些function,请单击此处获取更多信息。 这里有一些有趣的animation文章/博客: Google制作网站上的子类别名为material.io : […]

如何在android上的TextVIew上在5秒内实现从0到600的增加数量的animation

我计划在一定秒内通过animation将textView上的整数增加从0到某个值。 例如,显示animation,在textview上将数字从0增加到600,持续5秒。 我该如何实现呢?

如何在项目animation的持续时间内禁用RecyclerView项目装饰图

我有一些基本的项目装饰,它在ItemDecoration.onDrawOver方法中绘制一些东西。 此RecyclerView还设置了DefaultItemAnimator 。 animation正在发挥作用,一切都很棒。 除了一件事。 当所有现有项目与此适配器中设置的新项目交换时,animation正在运行时正在显示装饰。 我需要一种隐藏它们的方法。 当animation结束时,需要显示它们,但是当它运行时,它们必须被隐藏。 我尝试了以下方法: public void onDrawOver(…, RecyclerView.State state) { if(state.willRunPredictiveAnimations() || state.willRunSimpleAnimations()) { return; } // else do drawing stuff here } 但这没有帮助。 装饰仅在短时间的animation中被删除,但在它仍在运行时再次出现。 另外,安装程序包括一个RecyclerView.Adapter ,它具有SetIds()(如果该位很重要)。

java.lang.RuntimeException:未知的animation名称:objectAnimator

我在使用时收到此错误 getActivity().getSupportFragmentManager() .beginTransaction() .setCustomAnimations( R.animator.card_flip_right_in, R.animator.card_flip_right_out, R.animator.card_flip_left_in, R.animator.card_flip_left_out) .replace(R.id.content_fragment, new DaysSinceBirthSettingFragment()) .addToBackStack(null) .commit(); 但是当我改变它 getActivity().getFragmentManager() .beginTransaction() .setCustomAnimations( R.animator.card_flip_right_in, R.animator.card_flip_right_out, R.animator.card_flip_left_in, R.animator.card_flip_left_out) .replace(R.id.content_fragment, new DaysSinceBirthSettingFragment()) .addToBackStack(null) .commit(); 它完美无缺。 但我需要支持旧版本,所以我必须使用support-v4, getSupportFragmentManager()来自。 我读了一些文章说支持R.anim.card_flip_right_in不支持res/animator ,所以我也尝试将我的animationXML文件移动到res/anim文件夹并通过R.anim.card_flip_right_in引用它 但它仍然没有用,任何人都可以告诉我,我该怎么办?

如何做文字写animation?

我想在现实生活中创建文字写animation,如何在Android上做到这一点? 请帮忙。

如何创建一个重复的animation移动渐变drawable,就像一个不确定的进展?

背景 Android有一个标准的ProgressBar,在不确定时会带有特殊的animation。 还有很多可用的进度视图库( 这里 )。 问题 在我搜索过的所有内容中,我找不到办法做一件非常简单的事情: 具有从颜色X到颜色Y的渐变,水平显示,并在X坐标中移动,以便X之前的颜色将变为颜色Y. 例如(只是一个例子),如果我有一个蓝色红色的渐变,从边缘到边缘,它将如此: 我试过的 我在StackOverflow上尝试了一些解决方案: 更改水平进度条不确定颜色 如何更改android不确定ProgressBar颜色? ProgressBar / ProgressDialog的自定义Drawable 如何在Android中更改进度条的进度颜色 如何更改水平ProgressBar开始颜色和结束颜色渐变 但遗憾的是,它们都是关于Android的标准ProgressBar视图,这意味着它有一种不同的方式来显示drawable的animation。 我也试过在Android Arsenal网站上find类似的东西,但即使有很多不错的东西,我找不到这样的东西。 当然,我可以自己animation2个视图,每个视图都有自己的渐变(一个与另一个相反),但我确信有更好的方法。 这个问题 有可能使用Drawable或它的animation,这使得渐变(或其他任何东西)以这种方式移动(当然重复)? 也许只是从ImageView扩展并为那里的drawable设置animation? 是否也可以设置容器将用于重复可绘制的多少? 我的意思是,在上面的例子中,它可能是从蓝色到红色,因此蓝色将在边缘,红色将在中间。 编辑: 好的,我已经取得了一些进展,但是我不确定这个动作是否正常,而且我认为它的速度不一致,以防CPU出现繁忙,因为它不考虑帧丢失。 我所做的是将2个GradientDrawables一个接一个地绘制,如下: class HorizontalProgressView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : View(context, attrs, defStyleAttr) { private val speedInPercentage = 1.5f […]