- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用了两个图像(img_heart_1
和 img_heart_2
)。我有两种动画,一种是平移动画,另一种是缩放 text_anim.xml: animi(Animation)
,bounce_up.xml :bounce_up_anim(Animation)
同时:两个图像动画同时出现。
独家:两个动画(每个图像一个)
AnimationUtils.loadAnimation(this, R.anim.Same)
)用于两个图像动画。结果是连续的和不同的动画,预期的结果。但如果我从 firstAnimationAsync
中剪切 secAnim.execute();
并放入 onResume
,两个动画将同时运行,仅运行一次
如果我将 secAnim.execute()
保留在 onResume()
中,并放置 img_heart_2.startAnimation(animi);
而不是 img_heart_2.startAnimation(bounce_up_anim);
它会同时运行一次。
如果我将 secAnim.execute()
放在 firstAnimationAsync
的 onPostExecute()
中并保持 startAnimation(animi)
对于两个图像,现在,第一个动画将第一次运行,然后第二次运行两个动画。
为什么会这样?
此外,如果同时显示两张图片,第二张看起来有点压抑(垂直向下压缩)。我还放了 da=null
,(现在评论了)它不应该使那个动画无效吗?
我还希望我的翻译动画能够坚持到最后,而不是快速返回或变得不可见。
代码:text_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
>
<translate
android:fromXDelta="0"
android:toXDelta="50"
android:fromYDelta="0"
android:toYDelta="100"
android:duration="3000"
android:fillAfter="false"/>
</set>
代码:bounce_up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android:fromXScale="1.0"
android:toXScale="2.0"
android:fromYScale="1.0"
android:toYScale="3.0"
android:pivotX="50%"
android:pivotY="0%"
android:duration="3000"/>
</set>
代码:anidro.java
package my.trials.anidro;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class anidro extends Activity {
ImageView img_heart_1,img_heart_2, img_heart_3;
Animation animi, bounce_up_anim;
Bitmap b1,b2;
firstAnimationAsync da;
secondAnimAsync secAnim;
@Override
public void onPause(){
super.onPause();
}
@Override
public void onResume(){
super.onResume();
InitializeLayouts();
**da.execute();**
}
@Override
public void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
private void InitializeLayouts() {
img_heart_1=(ImageView)findViewById(R.id.lay_main_heartImg);
img_heart_2 = (ImageView)findViewById(R.id.lay_main_heart2Img);
**bounce_up_anim**=AnimationUtils.loadAnimation(this, R.anim.bounce_up);
**animi** = AnimationUtils.loadAnimation(this, R.anim.text_anim);
b1 = BitmapFactory.decodeResource(getResources(),R.drawable.anidro_heart2);
b2=BitmapFactory.decodeResource(getResources(), R.drawable.anidro_heart3);
da= new firstAnimationAsync();
secAnim = new secondAnimAsync();
//img_heart_12=(ImageView)findViewById(R.id.lay_main_koalaImg);
}
private class firstAnimationAsync extends AsyncTask<Void, Void, Void>{
protected void onPreExecute(){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
img_heart_1.setImageBitmap(b1);
img_heart_1.setVisibility(View.VISIBLE);
img_heart_1.startAnimation(**animi**);
//img_heart_1.setVisibility(View.INVISIBLE);
}
@Override
protected Void doInBackground(Void...params){
try{
Thread.sleep(1800);
}
catch(InterruptedException e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void v){
**secAnim.execute();**
//da=null;
return;
}
}
private class secondAnimAsync extends AsyncTask<Void, Void, Void>{
protected void onPreExecute(){
img_heart_2.setImageBitmap(b2);
//da=null;
img_heart_2.setVisibility(View.VISIBLE);
//img_heart_1.setVisibility(View.INVISIBLE);
img_heart_2.startAnimation(**bounce_up_anim**);
}
protected Void doInBackground(Void...params){
try{
Thread.sleep(5000);
}
catch(InterruptedException e){
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void v){
//secAnim = null;
return;
}
}
}
最佳答案
我知道这是一个老问题,但为了将来引用,您可以使用 AnimationSet.Builder
The Builder object is a utility class to facilitate adding animations to a AnimatorSet along with the relationships between the various animations. The intention of the Builder methods, along with the play() method of AnimatorSet is to make it possible to express the dependency relationships of animations in a natural way. Developers can also use the playTogether() and playSequentially() methods if these suit the need, but it might be easier in some situations to express the AnimatorSet of animations in pairs.
For example, this sets up a AnimatorSet to play anim1 and anim2 at the same time, anim3 to play when anim2 finishes, and anim4 to play when anim3 finishes:
AnimatorSet s = new AnimatorSet();
s.play(anim1).with(anim2);
s.play(anim2).before(anim3);
s.play(anim4).after(anim3);
关于Android 动画 : simultaneous vs. 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6908119/
此函数返回一个 2 元组,其中包含列表的最小值和最大值: import Control.Arrow ((***), (>>>), (&&&)) import Data.Semigroup (getMi
我有两个 Java 进程,Processor 和 Simulator。 模拟器每5秒向File X写入规定的数据记录(10行文本)。 处理器不断读取该文件,等待 token 指示有效记录。代码是这样的
我有两个不同的应用程序必须协同工作。进程 1 作为时间源,进程 2 根据进程 1 提供的时间源执行操作。我需要运行进程 2 的多个副本。目标是让一个时间源进程同时向 5-10 个其他进程发出信号时间,
在我的 Backbone.js 应用程序中,我有以下模型和 View : var Operation = Backbone.Model.extend({ defaults: function(
请大家帮忙,这很重要。 我需要在不到 5 分钟的时间内下载大约 2000 张图像。所以我决定进行并行图片下载。 如果有人可以建议我进行并行下载的更好方法或告诉我哪里出错了,我将不胜感激。 在错误日志中
当我阅读 Clojure 代码(比如来自 GitHub 上的各个项目)时,有一些东西我不太理解:在 :require 表达式中,你应该使用 :as 当您仅使用您使用 :refer 引用的函数时?另外,
我在多个客户端连接的客户端服务器聊天程序的客户端实现上遇到问题。问题是我遇到的问题是我应该如何同时发送(聊天消息到另一个客户端)和接收(来自另一个客户端的聊天消息)?发生的情况是我总是发送数据但从不读
我有两个列表: List listA1 = GetFirstList(); List listA2 = GetSecondList(); 和A类定义 class A { public int
我使用了两个图像(img_heart_1 和 img_heart_2)。我有两种动画,一种是平移动画,另一种是缩放 text_anim.xml: animi(Animation),bounce_up.
考虑我有一个如下所示的运行方法,我正在尝试为 MyThread 创建四个线程。语句 1 到 3 可以由线程同时运行,也可以不同地运行。但是我想让Statement 4同时被线程执行。我可以在语句 4
对于新因素感到抱歉,但我正在阅读有关 mysql 的“太多连接”。 http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html m
我正在尝试自定义约束 菜单栏类: import UIKit class ManuBar: UIView { override init(frame: CGRect) { sup
我正在使用尚未为 Swift 4 做好准备的第 3 方库,即打破独占内存访问规则 ( SE-0176)。 因此,我的控制台充满了这些警告: Simultaneous accesses to 0xb1a
我需要调用一堆 *.exe,这样我就可以调用一个记事本文件,其中存储了所有要调用的 *.exe 的所有完整路径,并使用该记事本文件(可以编辑)我想创建一个调用列表的父 exe,其中存在所有子 *.ex
我正在尝试制作一个具有单个服务器和多个客户端场景的客户端服务器聊天应用程序。我的服务器正在工作,但我无法让客户端工作。我正在使用 select() 函数来选择我应该 recv() 还是 send()。
我正在尝试为类似 Pokemon 的游戏编写一个 AI,除了所有的 Action 都事先为两个玩家所知(所有玩家都可以看到)。我已经记录了我需要的所有信息,例如伤害、准确度、暴击率等。 我以为我的目标
假设账户ABC(fund:1000) 发生一笔6000 的取款交易,同时从ATM 取款8000。那么交易将如何管理。数据库是否只打开一个连接并且不允许新连接到同一帐户?? .... 在这种情况下,当交
我一直在尝试将视频(来自我的网络摄像头)同时输出到文件('out.mkv')和管道: 文件获取过滤帧,管道:获取未过滤的原始视频。 我的帧速率是 30 fps。但是,我的文件输出中的帧速率要低得多。
我们需要在一台PC上驱动8到12个显示器,所有显示器都呈现单个3D场景图的不同 View ,因此必须使用多个图形卡。我们目前正在dx9上运行,因此希望移至dx11,以期使此操作变得更容易。 初步调查似
我想以编程方式同时不在XML文件中显示两个动画,它应该 ROTATE和TRANSLATE 我怎样才能做到这一点? 请以某种方式建议我?????? 这是ma代码:> ImageView snowImg1
我是一名优秀的程序员,十分优秀!