本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术,本文为大家讲解在Android中,如何以特定的时间间隔为图片添加动画效果。
在Android的开发过程中,我用的是Coursera类别,以下是我想要实现的静态效果图:

目前,我采用的代码是:
XML:
|
1
2
3
4
5
6
7
8
|
<Button android:id="@+id/startbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/leftfoot" android:layout_alignRight="@+id/leftfoot" android:onClick="startRhythmandAnimation" android:text="@string/start_button"
/> |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public
class Assignment3MainActivity extends Activity {private
View mMileTimeGoal;@Overrideprotected
void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_assignment3_main); mMileTimeGoal
= findViewById(R.id.miletimegoal);}public
void startRhythmandAnimation () { String
MileTime = mMileTimeGoal.getContext().toString(); String[]
time_array = MileTime.split(":"); int
hours = Integer.parseInt(time_array[0]); int
minutes = Integer.parseInt(time_array[1]); int
seconds = Integer.parseInt(time_array[2]); int
duration = 3600 * hours + 60 * minutes + seconds; int
steps_per_second = 3; int
running_rate = duration * steps_per_second; View
rightfoot = findViewById(R.id.rightfoot); View
leftfoot = findViewById(R.id.leftfoot); rightfoot.setVisibility(View.VISIBLE); Animation
anim = AnimationUtils.makeInChildBottomAnimation(this); rightfoot.startAnimation(anim); leftfoot.setVisibility(View.VISIBLE); leftfoot.startAnimation(anim);} |
我觉得,你可以采用如下代码:
Activity
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
private
Handler mHandler; private
long mInterval = 1000;private
View mLeftfoot;private
Animation mFootAnim;public
void onCreate(Bundle bundle) { ... mHandler
= new
Handler(); //.os
package class when importing mLeftfoot
= findViewById(R.id.leftfoot); mFootAnim
= AnimationUtils.loadAnimation(this,
R.anim.foot); stepRecursive();}private
void stepRecursive() { mHandler.postDelayed(new
Runnable() { @Override public
void run() { mLeftFoot.startAnimation(mFootAnim
); stepRecursive(); } },
mInterval);} |
|
1
2
3
4
5
|
<?xml
version="1.0"
encoding="utf-8"?> <translate
android:fromYDelta="0"
android:toYDelta="-15"
android:duration="400"/> <alpha
android:fromAlpha="1.0"
android:toAlpha="0"
android:duration="400"
/></set> |