1.在代码中获取控件是采用findViewById,每个空间都有一个唯一的ID
2.为按钮增加点击事件,需要先获取这个按钮空间,按照上面的方法。
mButton = (Button)findViewById(R.id.button1);
然后增加一个回调函数:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v(Tag, "mButton.setOnClickListener onClick");
String answer = "这是一个神奇的水晶球";
mTextView.setText(answer);
mTextView.startAnimation(mFadein);
// mImageView.startAnimation(mAnimation);
playSound();
toast("跳转成功");
startAnotherActivity();
}
});
在res里面新建一个文件夹,叫做anim,然后在里面新建一个Android XML文件,Root Element为scale,然后在里面设置一些属性:
<?xml version="1.0" encoding="utf-8"?>
<scale
android:fromXScale="0"
android:toXScale="1"
android:fromYScale="0"
android:toYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000"
xmlns:android="http://schemas.android.com/apk/res/android">
</scale>
然后回到Main里面,先获得图片和动画的控件,当然得先声明:
private ImageView mImageView;
private Animation mAnimation;
然后获取控件:
mImageView = (ImageView)findViewById(R.id.imageView1);
mAnimation = AnimationUtils.loadAnimation(this, R.anim.zoomin);
最后在按钮点击的回调函数里面写入:
mImageView.startAnimation(mAnimation);
完成
4.给文字增加动态效果(从完全透明到完全显示)
在res里面新建一个Android XML文件,root element为alpha,
<?xml version="1.0" encoding="utf-8"?>
<alpha
android:fromAlpha="0"
android:toAlpha="1"
android:duration="2000"
xmlns:android="http://schemas.android.com/apk/res/android">
</alpha>
然后声明一个Animation类,同时获得控件:
private Animation mFadein;
mFadein = AnimationUtils.loadAnimation(this, R.anim.fadein);
最后在回调函数里面加入:
mTextView.startAnimation(mFadein);
5.增加音效:
在Android平台中音频播放主要有两种方式:
1.SoundPool声音池 —— 适合短促而且对反应速度要求比较高的情况(游戏音效或者按键声等)
2.MediaPlayer媒体播放器——适合比较长且对反映速度要求不高的情况
新建一个文件夹:raw,然后把音效文件拷贝到里面。
在代码里面先声明一个SoundPool的对象,然后声明一个playSound方法:
private void playSound()
{
mSoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
int click = mSoundPool.load(this, R.raw.click, 1);
mSoundPool.play(click, 1, 1, 0, 1, 1);
}
最后在回调函数里面加入playSound()即可;
但是此时你会发现没有音效,这是因为有个特别注意的地方,就是SoundPool的初始化需要在OnCreate里面执行,调用的时候直接执行播放,
我们把
mSoundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
int click = mSoundPool.load(this, R.raw.click, 1);
放到外面,同时需要把click设置为全局变量,就完成了。