Android练习之猜扑克(ImageView)

code

 

View Code
  1 package com.example.flexd7;
  2 
  3 import android.os.Bundle;
  4 import android.annotation.SuppressLint;
  5 import android.app.Activity;
  6 import android.content.res.Resources;
  7 import android.util.Log;
  8 import android.view.Menu;
  9 import android.view.View;
 10 import android.view.View.OnClickListener;
 11 import android.widget.Button;
 12 import android.widget.ImageView;
 13 
 14 public class MainActivity extends Activity {
 15     
 16     private Button bt1;
 17     private ImageView iv1;
 18     private ImageView iv2;
 19     private ImageView iv3;
 20     
 21     private int[] poker = new int[]{R.drawable.p01,R.drawable.p02,R.drawable.p03};
 22     
 23     @Override
 24     protected void onCreate(Bundle savedInstanceState) {
 25         super.onCreate(savedInstanceState);
 26         setContentView(R.layout.activity_main);
 27         
 28         //Widgets
 29         bt1 = (Button)findViewById(R.id.bt1);
 30         iv1 = (ImageView)findViewById(R.id.iv1);
 31         iv2 = (ImageView)findViewById(R.id.iv2);
 32         iv3 = (ImageView)findViewById(R.id.iv3);
 33         
 34         //Listener
 35         bt1.setOnClickListener(buttonOnClickListener);
 36         iv1.setOnClickListener(imageViewOnClickListener);
 37         iv2.setOnClickListener(imageViewOnClickListener);
 38         iv3.setOnClickListener(imageViewOnClickListener);
 39         
 40         //洗牌
 41         //random();
 42     }
 43     
 44     /**
 45      * Button监听
 46      * Button点击的时候,设置三张牌显示为背面,并且不透明 就是可以看见,然后洗牌,牌面值存在数组里
 47      */
 48     private OnClickListener buttonOnClickListener = new OnClickListener(){
 49 
 50         //android自带lint工具 帮助提升代码
 51         @SuppressLint("NewApi")
 52         @Override
 53         public void onClick(View v) {
 54             //iv1.setImageResource(R.drawable.p04);
 55             iv1.setImageDrawable(getResources().getDrawable(R.drawable.p04));
 56             iv1.setAlpha(255);
 57             
 58             //iv2.setImageResource(R.drawable.p04);
 59             iv2.setImageDrawable(getResources().getDrawable(R.drawable.p04));
 60             iv2.setAlpha(255);
 61             
 62             //iv3.setImageResource(R.drawable.p04);
 63             iv3.setImageDrawable(getResources().getDrawable(R.drawable.p04));
 64             iv3.setAlpha(255);
 65             
 66             //洗牌
 67             random2();
 68         }
 69     };
 70     
 71     /**
 72      * ImageView监听
 73      * A牌点击则设置BC牌为透明,并且分别读入数组中的牌面值
 74      */
 75     private OnClickListener imageViewOnClickListener = new OnClickListener() {
 76         
 77         @SuppressLint("NewApi")
 78         @Override
 79         public void onClick(View v) {
 80             Log.i("Tag", "imageViewOnClick View:" + v.getId());
 81             //设置其他两个为透明
 82             if(v.getId()==R.id.iv1){
 83                 iv2.setImageAlpha(100);
 84                 iv3.setImageAlpha(100);
 85             }else if(v.getId()==R.id.iv2){
 86                 iv1.setImageAlpha(100);
 87                 iv3.setImageAlpha(100);
 88             }else if(v.getId()==R.id.iv3){
 89                 iv2.setImageAlpha(100);
 90                 iv1.setImageAlpha(100);
 91             }else {
 92             }
 93             iv1.setImageResource(poker[0]);
 94             iv2.setImageResource(poker[1]);
 95             iv3.setImageResource(poker[2]);
 96         }
 97     };
 98     
 99 
100     /**
101      * 洗牌方法1
102      * Math.random()是产生[0,1)的随机数,(int)(Math.random()*2)就随机产生0或1
103      */
104     private void random(){
105         for (int i = 0; i < 3; i++) {
106             int change = (int) (Math.random() * 2);//0、1、2三张牌依次跟随机到的0或1调换
107             int temp = poker[i];
108             poker[i] = poker[change];
109             poker[change] = temp;
110         }
111         
112         //iv1.setImageResource(poker[0]);
113         //iv2.setImageResource(poker[1]);
114         //iv3.setImageResource(poker[2]);
115         
116         //iv1.setImageDrawable(getResources().getDrawable(poker[0]));
117         //iv2.setImageDrawable(getResources().getDrawable(poker[1]));
118         //iv3.setImageDrawable(getResources().getDrawable(poker[2]));
119     }
120 
121     /**
122      * 洗牌方法2
123      */
124     private void random2(){
125         int change = ((int)(Math.random()*10)%3);//Math.random()*10产生小于10随机数,%3产生小于3余数
126         for (int i = 0; i < 3; i++) {//0、1、2三张牌依次跟随机到的 确定的0或1或2调换
127             int temp = poker[i];
128             poker[i] = poker[change];
129             poker[change] = temp;
130         }
131     }
132     
133     @Override
134     public boolean onCreateOptionsMenu(Menu menu) {
135         // Inflate the menu; this adds items to the action bar if it is present.
136         getMenuInflater().inflate(R.menu.activity_main, menu);
137         return true;
138     }
139 
140 }

 

转载于:https://www.cnblogs.com/imzzh/archive/2012/12/19/2824423.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值