标签: android-animation

如何为View的翻译设置动画

在第一次单击按钮时,我想View沿x轴滑动(向右滑动200像素).在第二次按下按钮时,我想View沿x轴向后滑动到原来的位置.

View.setTranslationX(float)方法跳转查看与通话对象的水平位置myView.setTranslationX(200);myView.setTranslationX(0);分别.任何人都知道我怎么能滑动View,而不是目标的水平位置?

注1: A TranslateAnimation是不好的,因为它实际上并没有移动,View但只是呈现它移动的错觉.

注2:在提出问题时我没有意识到这些setTranslationX(float)setTranslationY(float)方法是从API级别11开始引入的.如果你的目标是针对Honeycomb(API级别11),那么Gautam K的答案就足够了.否则,请参阅我的答案以获得建议的解决方案

android android-animation android-view

21
推荐指数
2
解决办法
4万
查看次数

如何将整理活动缩小为矩形

在我的Android应用程序中,我有一个浮动Activity.它是从我的应用程序外部开始使用ActivityOptions.makeScaleUpAnimation从"原始"矩形向上扩展.当我Activity完成时,我希望它能够完成与该动画相反的操作:即它逐渐缩小回到该矩形.

我知道我可以使用矩形getIntent().getSourceBounds(),并且我希望能够overridePendingTransition()在完成时使用以实现此效果,但是overridePendingTransition()只能接受固定的XML资源:似乎没有办法让动画依赖于源边界.我还能用其他东西来达到这个效果吗?

我的应用程序适用于API 11+,但由于它只是一种美容效果,我会对依赖于更高版本的解决方案感到满意.

android android-animation android-activity

21
推荐指数
1
解决办法
1484
查看次数

浮动动作按钮扩展

根据浮动操作按钮的新Android设计指南,将浮动操作按钮转换为工具栏应该是合理的.

是否有任何样本/示例来执行此类转换?

android android-animation floating-action-button

21
推荐指数
2
解决办法
1万
查看次数

android animate()withEndAction()vs setListener()onAnimationEnd()

我经常使用ViewPropertyAnimator并使用withEndAction()函数设置结束动作,如:

view.animate().translationY(0).withEndAction(new Runnable() {
    @Override
    public void run() {
        // do something
    }
}).start();
Run Code Online (Sandbox Code Playgroud)

但您也可以设置结束动作设置特殊监听器,如:

view.animate().translationY(0).setListener(new AnimatorListenerAdapter() {
    @Override
    public void onAnimationEnd(Animator animation) {
        // do something
    }
});
Run Code Online (Sandbox Code Playgroud)

那么这两种方法之间有什么区别,何时应该使用它们?

android android-animation viewpropertyanimator

21
推荐指数
1
解决办法
3830
查看次数

如何在RecyclerView上的排序(notifyDataSetChanged)期间提供自定义动画

目前,通过使用默认动画师android.support.v7.widget.DefaultItemAnimator,这是我在排序过程中遇到的结果

DefaultItemAnimator动画视频: https ://youtu.be/EccI7RUcdbg

public void sortAndNotifyDataSetChanged() {
    int i0 = 0;
    int i1 = models.size() - 1;

    while (i0 < i1) {
        DemoModel o0 = models.get(i0);
        DemoModel o1 = models.get(i1);

        models.set(i0, o1);
        models.set(i1, o0);

        i0++;
        i1--;

        //break;
    }

    // adapter is created via adapter = new RecyclerViewDemoAdapter(models, mRecyclerView, this);
    adapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

但是,我更喜欢提供自定义动画,而不是排序时的默认动画(notifyDataSetChanged).旧物品将从右侧滑出,新物品将向上滑动.

预期的动画视频: https ://youtu.be/9aQTyM7K4B0

如何在没有RecylerView的情况下实现这样的动画

几年前,我通过使用LinearLayout+ 达到了这个效果View,因为那个时候我们还RecyclerView没有.

这就是动画的设置方式

PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 1.0f, 0f);
PropertyValuesHolder translationX = PropertyValuesHolder.ofFloat("translationX", …
Run Code Online (Sandbox Code Playgroud)

android android-animation notifydatasetchanged android-recyclerview

21
推荐指数
2
解决办法
7287
查看次数

如何创建旋转轮控制?

我正在尝试在android中实现Rotatory wheel,就像下面显示的图像一样.我从这个链接中看到了教程.但我想实现如下图所示.轮子由各个图像组成.有没有人对这个实现有任何想法?任何帮助,将不胜感激.

在此输入图像描述

提前致谢.

阿卡什

animation android rotation image-rotation android-animation

20
推荐指数
1
解决办法
3万
查看次数

简单的仪表视图像android中的speedmeter?

我想要一个简单的仪表视图,我将定义起始值和结束值,并有一个指针来显示给定的变量值.

在此输入图像描述

所以我可以像速度计一样显示给定的值.例如,如果我的textView的值是1300,那么在textview旁边我想要这样的自定义仪表视图动画!

有可能的?任何现有的示例代码?

android view android-custom-view android-animation gauge

20
推荐指数
4
解决办法
6万
查看次数

ViewPager中的按钮滚动到特定页面

我的ViewPager中的一个布局有一个按钮."R.layout.add_site".我想选择按下按钮,它会滚动到我的特定页面.我已经可以选择滑动到特定页面,但我想同时拥有这两个页面.

现在我确定有办法做到这一点,但由于某种原因,我无法弄明白.

你会看到我做了一个尝试,但只是不知道要调用什么方法,以使其滚动到所需的页面.这是R.layout.main.

这是我的代码.

public class fieldsActivity extends Activity {

Button addSiteButton;
Button cancelButton;
Button signInButton;

/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // to create a custom title bar for activity window
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.fields);
    // use custom layout title bar
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.topbar);

    Pager adapter = new Pager();
    ViewPager mPager = (ViewPager) findViewById(R.id.fieldspager);
    mPager.setAdapter(adapter);
    mPager.setCurrentItem(1);


    addSiteButton = (Button) findViewById(R.id.addSiteButton);
    addSiteButton.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {
        // Don't …
Run Code Online (Sandbox Code Playgroud)

android android-animation android-layout android-button android-viewpager

20
推荐指数
1
解决办法
2万
查看次数

精确控制Androids VectorDrawable动画

更新:找到解决方案!向下滚动查看我接受的答案!

我想为一个图像的多个元素设置动画并将动画链接到ViewPagers位置(因此多个元素会根据拖动的当前页面进行变形或飞入/滑出).

那么,有没有办法精确控制动画的当前帧?例如,假设我有这个集合:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <objectAnimator
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="800"
        android:propertyName="scaleY"
        android:valueFrom="0"
        android:valueTo="1" />
    <objectAnimator
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="800"
        android:propertyName="scaleX"
        android:valueFrom="0"
        android:valueTo="1" />
    <objectAnimator
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="800"
        android:propertyName="rotation"
        android:valueFrom="0"
        android:valueTo="360" />
</set>
Run Code Online (Sandbox Code Playgroud)

动画矢量文件:

<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/pre_signup_1" >
    <target
        android:name="plus_button"
        android:animation="@anim/pre_signup_1_plus_container" />
    <target
        android:name="plus"
        android:animation="@anim/pre_signup_1_plus_sign" />
</animated-vector>
Run Code Online (Sandbox Code Playgroud)

用于运行动画的Java代码:

ImageView mImage1 = (ImageView) findViewById(R.id.image_1);
AnimatedVectorDrawableCompat animated = (AnimatedVectorDrawableCompat) mImage1.getDrawable();

animated.start();
Run Code Online (Sandbox Code Playgroud)

有没有办法控制动画setCurrentDuration(400),可能会将动画的当前状态设置为一半?也许有一种方法可以将绘制的矢量分成多个层并以编程方式为它们设置动画?提前致谢!

android vector-graphics android-animation android-viewpager android-vectordrawable

20
推荐指数
1
解决办法
5679
查看次数

活动和共享视图之间的动画:动画结束时的小故障/黑客攻击?

所以,我面临的问题是我在两个活动和两个共享视图之间做的动画看起来不太好.

问题是它的"小问题",当从Activity2回到Activity1时,TextViews在动画结束时共享闪烁,从Activity2中显示"更大的文本"几分之一秒,所以它"闪烁" ".

活动1(RecyclerView有三个项目):

在此输入图像描述

活动2(详情):

在此输入图像描述

我在制作动画时拍摄了屏幕.从Activity2返回到Activit2时,您可以看到文本最后闪烁.这段视频(36MB,对不起大小)显示:

https://drive.google.com/file/d/0B3wIZ9CS9Kj_a0MyVFlzX1YtY0E/view?usp=sharing

问题是:我做错了什么?为什么会这样闪烁?我看到其他动画的视频,它们都非常流畅和漂亮.

我已经测试了不同类型的转换(changeBounds,explode等),但总会有一些奇怪的事情发生.任何提示,想法将不胜感激=)

我的代码

MainActivity(Activity1):

package se.snapcode.lollipoptest;

import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.GestureDetectorCompat;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Pair;
import android.view.GestureDetector;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.widget.RecyclerView;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {

    private RecyclerView mRecyclerView;
    private MyAdapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;
    GestureDetectorCompat gestureDetector;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

        // use this setting to improve …
Run Code Online (Sandbox Code Playgroud)

android android-animation android-transitions activity-transition shared-element-transition

19
推荐指数
1
解决办法
5833
查看次数