1. 程式人生 > >android 中imageview 與diallog綜合應用猜牌遊戲

android 中imageview 與diallog綜合應用猜牌遊戲

package training.android.com;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

//建立人:xinzhouc

//建立時間:2010-3-25

public class paygamesCard extends Activity {
 // 按鈕
 private Button btnStart;
 // 圖片控制元件
 private ImageView imageview1;
 private ImageView imageview2;
 private ImageView imageview3;
 // 初始化圖片陣列;
 /*
  * R.drawable.p01 紅心A R.drawable.p02 黑桃2 R.drawable.p03 梅花3
  */
 private static int[] imagearray = new int[] { R.drawable.p01,
   R.drawable.p02, R.drawable.p03 };
 // 顯示文字控制元件
 private TextView txtview;
 // 是否開始
 private int isStart = 0;
 // 當前選中的圖片編號
 private int Current_Select_ID = 0;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  // 初始化找到各控制元件
  btnStart = (Button) findViewById(R.id.Button01);
  imageview1 = (ImageView) findViewById(R.id.ImageView01);
  imageview2 = (ImageView) findViewById(R.id.ImageView02);
  imageview3 = (ImageView) findViewById(R.id.ImageView03);
  txtview = (TextView) findViewById(R.id.TextView01);

  // 初始時為控制元件賦初值
  imageStart();
  // 洗牌
  RandomImage();
  // imageview1控制元件事件
  imageview1.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    if (isStart == 0) {
     Current_Select_ID = 0;
     onclickImage();
    } else {
     
     RestStartImage();
    }

   }
  });
  // imageview2控制元件事件
  imageview2.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    // if(imageview2.getResources().getDrawable(id)
    if (isStart == 0) {
     Current_Select_ID = 1;
     onclickImage();
    } else {
     RestStartImage();
    }
   }
  });
  // imageview3控制元件事件
  imageview3.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    if (isStart == 0) {
     Current_Select_ID = 2;
     onclickImage();
    } else {
     RestStartImage();
    }
   }
  });
  // 重來按鈕事件
  btnStart.setOnClickListener(new View.OnClickListener() {

   public void onClick(View v) {
    // TODO Auto-generated method stub
    RestStartImage();
   }
  });

 }

 // 洗牌事件
 private void RandomImage() {
  for (int i = 0; i < 3; i++) {
   int tmp = imagearray[i];
   int srandom = (int) (Math.random() * 2);
   imagearray[i] = imagearray[srandom];
   imagearray[srandom] = tmp;
  }

 }

 // 給圖片賦初值
 private void imageStart() {
  imageview1.setImageResource(R.drawable.p04);
  imageview2.setImageResource(R.drawable.p04);
  imageview3.setImageResource(R.drawable.p04);
  Current_Select_ID = 0;
  imageview1.setAlpha(255);
  imageview2.setAlpha(255);
  imageview3.setAlpha(255);
  txtview.setText("");
  isStart = 0;
 }

 // 點圖片時產生效果
 private void onclickImage() {
  isStart = 1;
  new AlertDialog.Builder(paygamesCard.this)
  .setTitle("確認")
  .setMessage("是否繼續")
  .setPositiveButton("確定", new Dialog.OnClickListener(){

   @Override
   public void onClick(DialogInterface dialog, int which) {
    imageview1.setImageDrawable(getResources().getDrawable(imagearray[0]));
    imageview2.setImageDrawable(getResources().getDrawable(imagearray[1]));
    imageview3.setImageDrawable(getResources().getDrawable(imagearray[2]));
    // TODO Auto-generated method stub
    if(Current_Select_ID==0)
    {
     imageview2.setAlpha(100);
     imageview3.setAlpha(100);
    }
    else if(Current_Select_ID==1)
    {
     imageview1.setAlpha(100);
     imageview3.setAlpha(100);
    }
    else
    {
     imageview1.setAlpha(100);
     imageview2.setAlpha(100);
    }
    if (imagearray[Current_Select_ID] == R.drawable.p01) {
     txtview.setText("恭喜您選中了紅桃A");
     Toast.makeText(paygamesCard.this, "恭喜您選中了紅桃A", Toast.LENGTH_SHORT)
       .show();
    } else {
     txtview.setText("沒有選中紅桃A。點牌重新始");
     Toast.makeText(paygamesCard.this, "沒有選中紅桃A。點牌重新始",
       Toast.LENGTH_SHORT).show();
    }
   }}).setNegativeButton("取消", new Dialog.OnClickListener(){

    @Override
    public void onClick(DialogInterface dialog, int which) {
     // TODO Auto-generated method stub
     isStart=0;
    }}).show();
  

 }
 //重新開始
 public void RestStartImage()
 {
  new AlertDialog.Builder(paygamesCard.this)
  .setTitle("重新開始")
  .setMessage("是否重新開始")
  .setPositiveButton("確定",new Dialog.OnClickListener(){

   @Override
   public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    imageStart();
    RandomImage();
   }})
   .setNegativeButton("取消", null).show();
  
 }
}

相關推薦

android imageview diallog綜合應用遊戲

package training.android.com; import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.content.

AndroidImageView centerInsidefitCenter區別

網路上寫ImageView scaleType的很多,但是詳細說明centerInside和fitCenter區別的基本沒有。相信不少人跟我有一樣的困惑。 其實兩者的區別很簡單。fitxx開頭的都是填充檢視的意思,當檢視View的大小比圖片小時兩者使用的效果是一樣;而當Vi

AndroidwindowTranslucentStatuswindowTranslucentNavigation的一些設置(轉)

windows 屏幕 contex 拉伸 新的 system 整體 navbar 額外 在iOS中,你可能發現頁面會整體拉升到狀態欄,整個頁面效果就會顯得更加的高端大氣上檔次,在Android4.4以後其實也有這種效果的實現,下面我就說一下在進行這種效果實現時碰到的一些坑,

androidImageView的屬性使用之src和background

如何正確合理使用ImageView 的src 和background 說明: src :為ImageView 原圖內容,存放原圖大小,不會被拉伸; background:為Imageview的背景,會根據ImageView給定的長寬進行拉伸;

轉:AndroidIntentServiceService的區別

https://blog.csdn.net/matrix_xu/article/details/7974393 Android中的Service是用於後臺服務的,當應用程式被掛到後臺的時候,問了保證應用某些元件仍然可以工作而引入了Service這個概念,那麼這裡面要強調的是Service不是獨立

androidokhttpwebview的cookie共享

轉載請註明出處:https://blog.csdn.net/u011038298/article/details/84551136   1.在WebView中同步cookie import android.os.Build; import android.text.Text

Android單例模式的應用

單例模式在我們日常開發中或多或少都會遇見,使用場景也是多種多樣。今天根據專案中需求,正好用到了單例模式。在此記錄一下。 一、跟隨app存活 有什麼方式,可以讓一個變數跟隨app存活呢?是一個單例模式維護的靜態工具類。靜態工具類程式碼一般都使用單例模式來實現,可以防止建立多

AndroidonTouchonClick兩種監聽的完全解析

之前專案中做一個豎直方向的ViewPager效果(詳見我的另一篇博文),這幾天做了幾個改動,突然發現我設定的OnTouchListener對觸控事件的監聽突然不起作用了,琢磨了半天覺得問題就出在onTouch的返回值true還是false上,後來自己測試的時候發現不光與這個有關,與OnClickLi

Android 介面卡fragment或者activity的回撥使用

如何使用介面回撥       使用場景:在activity或者fragment與adapter的回撥中        介面卡中使用: public OnUpdat

Android實現多Tab頁應用

Android上的多Tab是一個什麼效果?如果圖片看不懂的話,但是使用過Android的微部落格戶端,那也很清晰了,就是那個樣子。 但是在Android API V4版本之後,TabActivity被廢棄了不推薦使用,被替換為Fragment, FragmentActivity了,使用新的API

AndroidWebviewjs互動

1.js呼叫Android程式碼Android端:webView.addJavascriptInterface(new WebHost(this),"js");向WebView註冊一個名叫“js”的物件,然後在JS中可以訪問js這個物件,呼叫這個物件裡的一些方法。 publi

androidWebviewjavascript的互動(互相呼叫)

最近做android專案中遇到要在webview中做與js互動相關的東東,涉及到js中呼叫android本地的方法,於是查了資料整理了一下android和js互相呼叫的過程。如下demo,demo的主要實現過程如下:通過載入本地的html檔案(裡面有js指令碼),實現and

android?attr/**@drawable/**或@color/**等的區別

今天在寫一個Demo,研究主題的時候,遇到了【?attr/colorPrimary】這個用法,由於網上都是千篇一律的回答,所以我只能硬著頭皮去看原始碼了,茶壺煮餃子,暫且記下來,作為備忘錄吧。 一、?

AndroidrequestLayout() invalidate()的區別

invalidate()方法雖然最終會呼叫到performTraversals()方法中,但這時measure和layout流程是不會重新執行的,因為檢視沒有強制重新測量的標誌位,而且大小也沒有發生過變化,所以這時只有draw流程可以得到執行。而如果你希望檢視的繪製流程可以完完整整地重新走一遍,就不

ANDROID UIDPID的作用區別

PID:為Process Identifier, PID就是各程序的身份標識,程式一執行系統就會自動分配給程序一個獨一無二的PID。程序中止後PID被系統回收,可能會被繼續分配給新執行的程式,但是在android系統中一般不會把已經kill掉的程序ID重新分配給新的程序,新產生程序的程序號,一般比產生之前所

AndroidJSONObjectJsonObject的區別

Android與伺服器互動的時候,我們經常使用json格式的資料,使用較多的是JSONObject與JsonObject這兩個類,它們有什麼區別呢? 我們先看一段程式碼: package com.example.testjson; import org.j

Androidwifi資料流量的切換監聽

最近在做一個wifi和移動資料的監控功能,來來回回折騰了一陣子,這個模組的主要功能是監聽整個APP的wifi與資料流量的切換,讓使用者使用專用流量,而不是用wifi,給一個彈窗,點選確認,自動切換資

Androidfinish()destroy()的區別

   個人理解,這兩者的區別是finish()屬於執行方法,而destroy()屬於系統方法。finish()是在程式執行的過程中使用它來將物件銷燬,而destroy()方法是在系統將該activ

AndroidWebview原生介面互動及二維碼掃描功能實現

最近專案中有一個新的需求,大致是這樣的:APP中通過WebView展示一個第三方的HTML5介面,使用者可以在HTML5介面中呼叫Android攝像頭進行二維碼掃描,並將掃描結果顯示在HTML5介面。這顯然涉及到了Android原生與WebView之前的傳值

AndroidgetContext()getApplication()的區別

1.getContext()通常認為取到的是Activity物件,而getApplication()可以取到application物件 2.從Manifest中可以看出,一個應用程式只有一個Application節點。Application就是一個應用,因此,只要程式在執行