如标题中所述,我已经设置了一个播放特定音乐的按钮,但是我还希望它能够从已经存在的图像视图中激活动画,该视频将随之播放(对于我的情况,为如果按下按钮(停止播放音乐)或歌曲播放完毕,则恢复原始图像视图。
带按钮的活动代码如下:
package net.ZachApps.sheetmusicapp;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class ElDoradoScore extends Activity {
Button btnElDorado;
ImageView imgscore;
MediaPlayer songElDorado;
int playing;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.eldoradoscore);
btnElDorado = (Button)findViewById(R.id.btnElDorado);
btnElDorado.setOnClickListener(bElDorado);
songElDorado = new MediaPlayer();
songElDorado = MediaPlayer.create(this, R.raw.eldoradoscore);
playing = 0;
}
Button.OnClickListener bElDorado = new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch(playing){
case 0:
songElDorado.start();
playing=1;
btnElDorado.setText("Stop El Dorado Song");
break;
case 1:
songElDorado.stop();
playing = 0;
btnElDorado.setText("Start El Dorado Song");
break;
}
}
};
}
我将动画保存为res / anim / score.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/eldoradop1" android:duration="2000" />
<item android:drawable="@drawable/eldoradop2" android:duration="2000" />
<item android:drawable="@drawable/eldoradop3" android:duration="2000" />
<item android:drawable="@drawable/eldoradop4" android:duration="2000" />
<item android:drawable="@drawable/eldoradop5" android:duration="2000" />
<item android:drawable="@drawable/eldoradop6" android:duration="2000" />
<item android:drawable="@drawable/eldoradop7" android:duration="2000" />
<item android:drawable="@drawable/eldoradop8" android:duration="2000" />
<item android:drawable="@drawable/eldoradop9" android:duration="2000" />
<item android:drawable="@drawable/eldoradop10" android:duration="2000" />
<item android:drawable="@drawable/eldoradop11" android:duration="2000" />
</animation-list>
我试图寻找一种从按钮激活动画的方法(带有案例),但是在搜索时我没有找到有用的信息。我该怎么办? 我知道还有另一种方法来设置它,但我想知道从这个角度来看是否可行。
答案 0 :(得分:0)
添加另一个成员变量:
AnimationDrawable animation;
添加onCreate
方法:
imgscore = (ImageView)findViewById(R.id.imgscore); // assuming that's the name
imgscore.setBackgroundResource(
R.drawable.your_animation_resource); // I don't know the resource name
animation = (AnimationDrawable)imgscore.getBackground();
在case 0
的切换声明中添加OnClickListener
:
animation.start();
在case 1
下:
animation.stop();
根据您的行为,您可能还需要设置ImageView
中OnClickListener
的展示率。
编辑:
作为附注,您应确保在适当的时间(至少在release
)致电MediaPlayer
onDestroy
,并根据您的意图,您可能需要一种更复杂的治疗方法,以产生所需的行为。