本实例参考《
Google Android SDK开发范例大全》。
针对上述书本,个人的一点点优化和修正的一处BUG,感兴趣的不妨可以参考一下,运行图:

代码如下:
- package cn.terry;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.*;
- public class testGame extends Activity {
- private ImageView myImageView;
- private ImageView myImageView2;
- private ImageView myImageView3;
- private Button myButton;
- private int a=0;
- private int[] myImage={
- R.drawable.p01,
- R.drawable.p02,
- R.drawable.p03,
- };
-
- private View.OnClickListener MyimageClistener;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- myImageView=(ImageView)findViewById(R.id.mImage01);
- myImageView2=(ImageView)findViewById(R.id.mImage02);
- myImageView3=(ImageView)findViewById(R.id.mImage03);
-
- myButton=(Button)findViewById(R.id.mButton);
- Randon();
- MyimageClistener=new View.OnClickListener() {
-
- @Override
- public void onClick(View v) {
-
- // TODO Auto-generated method stub
- if(a==0)
- {
- switch (v.getId()) {
- case R.id.mImage01:
- SetImage(0,myImageView);
-
- break;
- case R.id.mImage02:
- SetImage(1,myImageView2);
-
- break;
- case R.id.mImage03:
- SetImage(2,myImageView3);
-
- break;
- default:
- break;
- }
- }
- }
- };
-
- myImageView.setOnClickListener(MyimageClistener);
- myImageView2.setOnClickListener(MyimageClistener);
- myImageView3.setOnClickListener(MyimageClistener);
-
- myButton.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if(a==1)
- {
- myImageView.setImageResource(R.drawable.p04);
- myImageView2.setImageResource(R.drawable.p04);
- myImageView3.setImageResource(R.drawable.p04);
- myImageView.setAlpha(255);
- myImageView2.setAlpha(255);
- myImageView3.setAlpha(255);
- Randon();
- a--;
- }
- }
- });
- }
-
- private void SetImage(int temp,ImageView ss)
- {
- myImageView.setImageResource(myImage[0]);
- myImageView2.setImageResource(myImage[1]);
- myImageView3.setImageResource(myImage[2]);
- myImageView.setAlpha(100);
- myImageView2.setAlpha(100);
- myImageView3.setAlpha(100);
- ss.setAlpha(255);
- if(myImage[temp]==R.drawable.p01)
- {
- Toast.makeText(testGame.this, "恭喜你猜對了", Toast.LENGTH_SHORT)
- .show();
- }
- else
- {
- Toast.makeText(testGame.this, "對不起你猜錯了", Toast.LENGTH_SHORT)
- .show();
- }
- a++;
- }
-
-
-
- private void Randon()
- {
- for(int i=0;i<myImage.length;i++)
- {
- int temp=myImage[i];
- int s=(int)(Math.random()*2);
- myImage[i]=myImage[s];
- myImage[s]=temp;
- }
- }
-
-
-
-
-
-
- }
优化如下:
1:提取公共事件。
2:封装相同代码,如SetImage这个方法。