是否可以为Lollipop前设备安装这款新的Animator?
我是新手,我正在尝试从其官方文档中获取java文件,但我真的迷路了,我不知道如何找到它,等等.
我已经实现了RecyclerView
可以添加和删除项目的位置.我想在最后一个位置添加添加的项目,每当我添加一个新项目时,动画运行良好.也就是说,最后一个项目向下移动,让新项目的空间淡入.
当我删除项目时,有一个问题,我不知道如何解决.我希望它的表现如下:
实际发生的是,首先,最后一项消失,然后动画的其余部分发生.当已删除元素下方的项目向上移动时,最后一项将重新显示为来自墙后方.
对我来说,似乎RecyclerView
缩小到"动画后"高度,然后执行动画.
我没有定义ItemAnimator
,所以DefaultItemAnimator
必须使用的那个.我观看了这个视频,并supportsPredictiveItemAnimations
在自定义实现中覆盖了该方法LinearLayoutManager
,但它没有修复它.
我想从我的项目中替换com.nineoldandroids库的依赖项,并将其替换为android本机库.
我正在尝试基于这个http://www.tutecentral.com/android-swipe-listview/制作一个项目.但是,我不需要支持低于v11的Android版本.因此,无需使用此库.但我找不到在其中使用的内容,而不是对代码本身进行更改.
该项目导入类
import com.nineoldandroids.animation.Animator;
import com.nineoldandroids.animation.AnimatorListenerAdapter;
import com.nineoldandroids.animation.ValueAnimator;
import com.nineoldandroids.view.ViewHelper;
import static com.nineoldandroids.view.ViewHelper.setAlpha;
import static com.nineoldandroids.view.ViewHelper.setTranslationX;
import static com.nineoldandroids.view.ViewPropertyAnimator.animate;
Run Code Online (Sandbox Code Playgroud)
谢谢.
ObjectAnimator和ViewPropertyAnimator改变属性值有什么区别?
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(myObject, "X", 0.0f, 100.0f);
Run Code Online (Sandbox Code Playgroud)
我正在尝试myObject.getX()
上面objectAnimator
正在进行中,并且我在0.0f到100.0之间获得了一个在路上的值.
myObject.setX(0.0f);
myObject.animate().x(100.0f);
Run Code Online (Sandbox Code Playgroud)
但是,我得到了精确的100.0当我myObject.getX()
倒是而上述ViewPropertyAnimator
工作正在进行中.
我无法弄清楚是什么造成了这种差异.
提前致谢.
首先,这与前Lollipop设备(Android)的创建循环显示不同
我正在使用那里提到的库来创建Circular Reveal,但它似乎对我不起作用.
XML
<io.codetail.widget.RevealFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/circBack"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff4081"
android:visibility="invisible"
></FrameLayout>
</io.codetail.widget.RevealFrameLayout>
Run Code Online (Sandbox Code Playgroud)
JAVA
View myView = findViewById(R.id.circBack);
// get the center for the clipping circle
int cx = (myView.getLeft() + myView.getRight()) / 2;
int cy = (myView.getTop() + myView.getBottom()) / 2;
// get the final radius for the clipping circle
int finalRadius = Math.max(myView.getWidth(), myView.getHeight());
SupportAnimator animator = ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.setDuration(1000);
myView.setVisibility(View.VISIBLE);
animator.start();
Run Code Online (Sandbox Code Playgroud)
圆形揭示没有显示出来.我的意思是代码执行时没有任何反应.
Logcat显示了这一点
07-01 19:15:47.498 27556-27556/com.ledo.ledoapp I/art? …
Run Code Online (Sandbox Code Playgroud) 我为一个剑形游戏制作了一个简单的动画,当玩家角色静止不动时,它会不断缓慢地上下移动.
我的剑附有一个Animator组件:
Animator Controller也非常简单,此动画附加到我的默认状态:
动画在动画窗口的预览模式下播放得很好.但是当我运行我的游戏时,动画根本不会播放,剑只是静止而不是移动.
这个问题的原因是什么?
我在动画窗口中找不到任何滚动选项。动画窗口中没有滚动条,我找不到任何其他选项用于在动画窗口中滚动,所以当我添加更多状态时,很难选择,因为内容无法适应窗口。请参阅屏幕截图参考。那么有没有像按住shift和移动光标这样的快捷键?请如果有人知道告诉我如何平移动画窗口?
当常量和不可修改的速度至关重要时,如何使ObjectAnimator独立于"Animator持续时间刻度"开发人员选项设置?
所以,我正在制作一个小 2D 游戏,在这个游戏中玩家可以滑雪,所以,我制作了玩家动画师,我希望玩家滑雪与状态无关,所以我使用了“任何状态”状态使用名为“isSnowboarding”的布尔值将当前动画转换为“9_Snowboarding”动画,并且效果很好。
当我想让玩家跳跃时,问题就开始了,我创建了跳跃动画,我创建了一个名为“isJumping”的 bool 来进行转换,我通过代码将 bool 设置为 true。
动画控制器没有转换到动画并播放它,而是多次将“9_Snowboarding”转换为“10_SnowboardJumping”,我不知道如何解决这个问题。
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="rotationX"
android:valueFrom="0"
android:valueTo="-360"
android:repeatCount="infinite">
</objectAnimator>
Run Code Online (Sandbox Code Playgroud)
这是我的对象动画师 xml
//Animating the NormalLayout
final ObjectAnimator anim4 = (ObjectAnimator) //Object animator
AnimatorInflater.loadAnimator(this, R.animator.rotate_four);
//And this is my java code
Run Code Online (Sandbox Code Playgroud)
我想在循环之间添加延迟,例如再次循环之间间隔 3 秒。我尝试过动画监听器之类的东西onRepeat
,onEnd
但没有成功。我想要循环之间有一些延迟。
任何帮助将不胜感激。
我创建了一个名为“m4a4animator”的动画师。在其中,主要功能称为“空闲”(无),其他 2 种状态:“射击”(mouse0)和“重新加载”(R)。这 2 个动画状态转换为“空闲”。现在,一切正常......但我唯一的问题是:如果我正在重新加载并按下鼠标0(射击),动画运行状态立即更改为射击......但我想阻止它.
现在,问题是:如何在动画运行时停止某些动画更改?
这是我的脚本:
using UnityEngine;
using System.Collections;
public class m4a4 : MonoBehaviour {
public Animator m4a4animator;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.R)) {
m4a4animator.Play("reload");
}
if (Input.GetMouseButton(0)) {
m4a4animator.Play("shoot");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我通过拖动和选择运动搜索功能将动画拉到“运动”选项卡,但两者都不使动画保持在空闲状态。有人可以告诉我我做错了什么吗?