在第一次单击按钮时,我想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应用程序中,我有一个浮动Activity.它是从我的应用程序外部开始使用ActivityOptions.makeScaleUpAnimation从"原始"矩形向上扩展.当我Activity完成时,我希望它能够完成与该动画相反的操作:即它逐渐缩小回到该矩形.
我知道我可以使用矩形getIntent().getSourceBounds(),并且我希望能够overridePendingTransition()在完成时使用以实现此效果,但是overridePendingTransition()只能接受固定的XML资源:似乎没有办法让动画依赖于源边界.我还能用其他东西来达到这个效果吗?
我的应用程序适用于API 11+,但由于它只是一种美容效果,我会对依赖于更高版本的解决方案感到满意.
根据浮动操作按钮的新Android设计指南,将浮动操作按钮转换为工具栏应该是合理的.
是否有任何样本/示例来执行此类转换?
我经常使用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.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
几年前,我通过使用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
我正在尝试在android中实现Rotatory wheel,就像下面显示的图像一样.我从这个链接中看到了教程.但我想实现如下图所示.轮子由各个图像组成.有没有人对这个实现有任何想法?任何帮助,将不胜感激.

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

所以我可以像速度计一样显示给定的值.例如,如果我的textView的值是1300,那么在textview旁边我想要这样的自定义仪表视图动画!
有可能的?任何现有的示例代码?
我的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
更新:找到解决方案!向下滚动查看我接受的答案!
我想为一个图像的多个元素设置动画并将动画链接到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
所以,我面临的问题是我在两个活动和两个共享视图之间做的动画看起来不太好.
问题是它的"小问题",当从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