【发布时间】:2014-05-19 19:24:21
【问题描述】:
谁能告诉我如何才能显示带有声音的图像...我想在播放声音时显示图像几秒钟...我是新手,无法弄清楚。我可以单独获取图像或声音,但不能两者结合。
enter code here
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.View.OnTouchListener;
public class GunBlood extends Activity implements OnClickListener,
OnLongClickListener {
Disp d;
SoundPool sp, sp2;
float y = 0, x = 0;
int ex = 0, sg = 0, f = 0;
Bitmap blood;
Canvas canvas;
View v;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
d = new Disp(this);
v= new View(this);
setContentView(d);
d.setOnClickListener(this);
d.setOnLongClickListener(this);
blood = BitmapFactory.decodeResource(getResources(), R.drawable.blood);
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
ex = sp.load(this, R.raw.gun, 1);
sp2 = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
sg = sp2.load(this, R.raw.sgun, 1);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (ex != 0) {
if (f == 0)
sp.play(ex, 1, 1, 0, 0, 1);
f = 0;
}
x = v.getX();
y = v.getY();
}
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if (sg != 0)
sp2.play(ex, 1, 1, 0, 0, 1);
f = 1;
return false;
}
public class Disp extends View {
public Disp(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
if (x != 0 && y != 0) {
canvas.drawBitmap(blood, (blood.getWidth() / 2),
(blood.getHeight() / 2), null);
}
invalidate();
}
}
}
【问题讨论】: