Android:一个很简单的扑克游戏(从项目资源创建图像)


string.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string name="hello">简单的扑克牌游戏</string>  
  4.     <string name="app_name">扑克牌</string>  
  5.     <string name="again">再来一次</string>  
  6.     <string name="good_luck">恭喜您,猜对了,你该买彩票了!</string>  
  7.     <string name="bad_luck">很遗憾,猜错了,有志者事竟成,再来一次!</string>  
  8.     <string name="guess">猜猜A是哪一个张?</string>  
  9. </resources>  

Activity

  1. public class CardsActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     private ImageView imageView0=null;  
  4.     private ImageView imageView1=null;  
  5.     private ImageView imageView2=null;  
  6.     private ImageView imageView3=null;  
  7.     private ImageView imageView4=null;  
  8.     private TextView textView01=null;  
  9.     //得到所有的图片的id   
  10.     private static int image[]=new int[]  
  11.             {R.drawable.image1,R.drawable.image2,R.drawable.image3,R.drawable.image4,R.drawable.main,};  
  12.       
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.main);  
  17.         imageView0=(ImageView)findViewById(R.id.card1);  
  18.         imageView1=(ImageView)findViewById(R.id.card2);  
  19.         imageView2=(ImageView)findViewById(R.id.card3);  
  20.         imageView3=(ImageView)findViewById(R.id.card4);  
  21.         imageView4=(ImageView)findViewById(R.id.main);  
  22.         randomNum();  
  23.           
  24.         imageView0.setOnClickListener(new GuessCardOnclicker());  
  25.         imageView1.setOnClickListener(new GuessCardOnclicker());  
  26.         imageView2.setOnClickListener(new GuessCardOnclicker());  
  27.         imageView3.setOnClickListener(new GuessCardOnclicker());  
  28.         imageView4.setOnClickListener(new GuessCardOnclicker());  
  29.     }  
  30.       
  31.     class GuessCardOnclicker implements OnClickListener{  
  32.         /** 
  33.          * 根据点击事件,得到id,再根据id得到点击 的imageView对象,再判断这个imageVieW的image是不是A 
  34.          */  
  35.         @Override  
  36.         public void onClick(View v) {  
  37.             switch (v.getId()) {  
  38.             case R.id.card1:  
  39.                 gameResult(R.id.card1);  
  40.                 break;  
  41.             case R.id.card2:  
  42.                 gameResult(R.id.card2);  
  43.                 break;  
  44.             case R.id.card3:  
  45.                 gameResult(R.id.card3);  
  46.                 break;  
  47.             case R.id.card4:  
  48.                 gameResult(R.id.card4);  
  49.                 break;  
  50.             case R.id.main:  
  51.                 gameResult(R.id.main);  
  52.                 break;  
  53.             default:  
  54.                 break;  
  55.             }  
  56.         }  
  57.     }  
  58.       
  59.     private void gameResult(int cardId) {  
  60.         //显示图片的所有随机值;   
  61.          imageView0.setImageDrawable(getResources().getDrawable(image[0]));  
  62.          imageView1.setImageDrawable(getResources().getDrawable(image[1]));  
  63.          imageView2.setImageDrawable(getResources().getDrawable(image[2]));  
  64.          imageView3.setImageDrawable(getResources().getDrawable(image[3]));  
  65.          imageView4.setImageDrawable(getResources().getDrawable(image[4]));  
  66.            
  67.          ImageView imageView;  
  68.            
  69.          //得到点击 的imageView、判断是不是猜 对了。   
  70.          if(((imageView0.getId() == cardId)&&(R.drawable.image1 == image[0]))||  
  71.          ((imageView1.getId() == cardId)&&(R.drawable.image1 == image[1]))||  
  72.          ((imageView2.getId() == cardId)&&(R.drawable.image1 == image[2]))||  
  73.          ((imageView3.getId() == cardId)&&(R.drawable.image1 == image[3]))||  
  74.          ((imageView4.getId() == cardId)&&(R.drawable.image1 == image[4]))){  
  75.              hintResult(true);  
  76.          }else{  
  77.              hintResult(false);  
  78.          }  
  79.            
  80.     }  
  81.       
  82.     public void hintResult(boolean result){  
  83.         if(result){  
  84.             Toast.makeText(CardsActivity.this"恭喜你,猜对了!"500).show();  
  85.         }else{  
  86.             Toast.makeText(CardsActivity.this"对不起,猜错了!"500).show();  
  87.         }  
  88.         imageView0.setEnabled(false);  
  89.         imageView1.setEnabled(false);  
  90.         imageView2.setEnabled(false);  
  91.         imageView3.setEnabled(false);  
  92.         imageView4.setEnabled(false);  
  93.     }  
  94.       
  95.     /** 
  96.      * 随机生成一个数组对象,存储扑克。代表imageView里的随机图像 
  97.      */  
  98.     private void randomNum(){  
  99.         for (int i = 0; i < 5; i++)  
  100.         {  
  101.             int s=(int)Math.random()*3;  
  102.             int temp;  
  103.             temp=image[i];  
  104.             image[i]=image[s];  
  105.             image[s]=temp;  
  106.         }  
  107.     }  
  108.     /** 
  109.      * 点击空白外游戏重新来;由于imageView也设置了点击 事件,当点击 屏幕的时候,imageView优先 
  110.      */  
  111.     @Override  
  112.     public boolean onTouchEvent(MotionEvent event) {  
  113.         imageView0.setImageDrawable(getResources().getDrawable(R.drawable.hint));  
  114.         imageView1.setImageDrawable(getResources().getDrawable(R.drawable.hint));  
  115.         imageView2.setImageDrawable(getResources().getDrawable(R.drawable.hint));  
  116.         imageView3.setImageDrawable(getResources().getDrawable(R.drawable.hint));  
  117.         imageView4.setImageDrawable(getResources().getDrawable(R.drawable.hint));  
  118.          randomNum();  
  119.          imageView0.setEnabled(true);  
  120.         imageView1.setEnabled(true);  
  121.         imageView2.setEnabled(true);  
  122.         imageView3.setEnabled(true);  
  123.         imageView4.setEnabled(true);  
  124.         return super.onTouchEvent(event);  
  125.     }  
  126. }  

layout布局文件:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:id="@+id/game_name"  
  9.     android:layout_width="wrap_content"   
  10.     android:layout_height="wrap_content"   
  11.     android:textSize="25dp"  
  12.     android:layout_centerHorizontal="true"  
  13.     android:textColor="#ED207A"  
  14.     android:text="@string/hello"  
  15.     />  
  16.  <TextView   
  17.     android:id="@+id/tv_hint"  
  18.     android:layout_width="wrap_content"  
  19.     android:layout_height="wrap_content"  
  20.     android:textSize="15dp"  
  21.     android:layout_below="@id/game_name"  
  22.     android:textColor="#FFFFFF"  
  23.     android:text="@string/guess"/>  
  24.   
  25. <ImageView   
  26.     android:id="@+id/card1"  
  27.     android:layout_width="wrap_content"  
  28.     android:layout_height="wrap_content"   
  29.     android:layout_below="@id/tv_hint"  
  30.     android:layout_marginTop="5dp"  
  31.     android:layout_centerHorizontal="true"  
  32.     android:src="@drawable/hint"/>  
  33.       
  34. <ImageView   
  35.     android:id="@+id/card2"  
  36.     android:layout_width="wrap_content"  
  37.     android:layout_height="wrap_content"   
  38.     android:layout_below="@id/card1"  
  39.     android:layout_marginTop="10dp"  
  40.     android:layout_alignParentLeft="true"  
  41.     android:layout_marginLeft="5dp"  
  42.     android:src="@drawable/hint"/>  
  43.       
  44. <ImageView   
  45.     android:id="@+id/main"  
  46.     android:layout_width="wrap_content"  
  47.     android:layout_height="wrap_content"   
  48.     android:layout_below="@id/card1"  
  49.     android:layout_marginTop="10dp"  
  50.     android:layout_centerHorizontal="true"  
  51.     android:src="@drawable/hint"/>  
  52.       
  53. <ImageView   
  54.     android:id="@+id/card3"  
  55.     android:layout_width="wrap_content"  
  56.     android:layout_height="wrap_content"   
  57.     android:layout_below="@id/card1"  
  58.     android:layout_marginTop="10dp"  
  59.     android:layout_alignParentRight="true"  
  60.     android:layout_marginRight="5dp"  
  61.     android:src="@drawable/hint"/>  
  62.       
  63. <ImageView   
  64.     android:id="@+id/card4"  
  65.     android:layout_width="wrap_content"  
  66.     android:layout_height="wrap_content"   
  67.     android:layout_below="@id/card3"  
  68.     android:layout_marginTop="10dp"  
  69.     android:layout_centerHorizontal="true"  
  70.     android:src="@drawable/hint"/>  
  71.   
  72. </RelativeLayout>  

所用到的资源:



运行效果如下:


  

相关内容