Android實現(xiàn)簡易版打地鼠
更新時間:2020年04月23日 11:33:05 作者:Vivinia_Vivinia
這篇文章主要為大家詳細介紹了Android實現(xiàn)簡易版打地鼠,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Android實現(xiàn)簡易版打地鼠的具體代碼,供大家參考,具體內容如下
目標效果:
1.activity_main.xml頁面:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.weixu.eclipsemole.MainActivity"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <ImageView android:id="@+id/ivZeroZero" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivZeroOne" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivZeroTwo" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivZeroThree" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <ImageView android:id="@+id/ivOneZero" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivOneOne" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivOneTwo" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivOneThree" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <ImageView android:id="@+id/ivTwoZero" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivTwoOne" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivTwoTwo" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivTwoThree" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <ImageView android:id="@+id/ivThreeZero" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivThreeOne" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivThreeTwo" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> <ImageView android:id="@+id/ivThreeThree" android:layout_width="0dp" android:layout_weight="1" android:onClick="whackAMole" android:clickable="false" android:background="@drawable/emptyhole" android:layout_height="match_parent" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="60dp"> <Button android:id="@+id/btStartWhackAMole" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:onClick="btnClick" android:text="開始"/> <TextView android:id="@+id/tvWhackAMoleScore" android:gravity="center" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:text="分數(shù)"/> <Button android:id="@+id/btStopWhackAMole" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:onClick="btnClick" android:text="結束"/> </LinearLayout> </LinearLayout>
2.MainActivity.java頁面;
package com.example.weixu.eclipsemole; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private ImageView[][] view=new ImageView[4][4]; private Button btStartWhackAMole,btStopWhackAMole; private TextView tvWhackAMoleScore; private int time_s=1000; //難度的時間 private int time=time_s; //地鼠出來時間 private int score=0; //成績,打地鼠個數(shù) private int num=0; //地鼠出來個數(shù) private int temp_i=0,temp_j=0; //記錄上一次出現(xiàn)的地鼠在數(shù)組view中的下標 private int flag=1; //默認為停止狀態(tài),0開始,1結束,2運行 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { view[0][0]= (ImageView) findViewById(R.id.ivZeroZero); view[0][1]= (ImageView) findViewById(R.id.ivZeroOne); view[0][2]= (ImageView) findViewById(R.id.ivZeroTwo); view[0][3]= (ImageView) findViewById(R.id.ivZeroThree); view[1][0]= (ImageView) findViewById(R.id.ivOneZero); view[1][1]= (ImageView) findViewById(R.id.ivOneOne); view[1][2]= (ImageView) findViewById(R.id.ivOneTwo); view[1][3]= (ImageView) findViewById(R.id.ivOneThree); view[2][0]= (ImageView) findViewById(R.id.ivTwoZero); view[2][1]= (ImageView) findViewById(R.id.ivTwoOne); view[2][2]= (ImageView) findViewById(R.id.ivTwoTwo); view[2][3]= (ImageView) findViewById(R.id.ivTwoThree); view[3][0]= (ImageView) findViewById(R.id.ivThreeZero); view[3][1]= (ImageView) findViewById(R.id.ivThreeOne); view[3][2]= (ImageView) findViewById(R.id.ivThreeTwo); view[3][3]= (ImageView) findViewById(R.id.ivThreeThree); btStartWhackAMole= (Button) findViewById(R.id.btStartWhackAMole); btStopWhackAMole= (Button) findViewById(R.id.btStopWhackAMole); tvWhackAMoleScore= (TextView) findViewById(R.id.tvWhackAMoleScore); btStartWhackAMole.setClickable(true); btStopWhackAMole.setClickable(false); } public void whackAMole(View view){ view.setBackgroundResource(R.drawable.hit); view.setClickable(false); score++; time=time_s-score*10; tvWhackAMoleScore.setText("分數(shù):"+score); } public void btnClick(View view){ switch (view.getId()){ case R.id.btStartWhackAMole: btStartWhackAMole.setClickable(false); btStopWhackAMole.setClickable(true); num=0; score=0; flag=0; //開始 tvWhackAMoleScore.setText("分數(shù):0"); new MyAsyncTask().execute(); break; case R.id.btStopWhackAMole: btStartWhackAMole.setClickable(true); btStopWhackAMole.setClickable(false); score=0; flag=1; //停止 new MyAsyncTask().execute(); break; } } class MyAsyncTask extends AsyncTask<String,Integer,String>{ @Override protected String doInBackground(String... strings) { //進入運行狀態(tài) while(flag!=1){ flag=2; double r=Math.random(); int i=((int)(r*10))%4; r=Math.random(); int j=((int)(r*10))%4; try { Thread.sleep(time); }catch (InterruptedException e){ e.printStackTrace();; } publishProgress(i,j); } return null; } @Override protected void onProgressUpdate(Integer... values) { //主線程 if(flag==0){ //開始 view[values[0]][values[1]].setBackgroundResource(R.drawable.emptyhole); }else if(flag==2){ //運行 view[temp_i][temp_j].setBackgroundResource(R.drawable.emptyhole); view[temp_i][temp_j].setClickable(false); //上一次出現(xiàn)的設置為不能點擊 view[values[0]][values[1]].setBackgroundResource(R.drawable.show6); view[values[0]][values[1]].setClickable(true); num++; if((num-score)==5){ flag=1; btStartWhackAMole.setClickable(true); Toast.makeText(MainActivity.this,"游戲結束",Toast.LENGTH_SHORT).show(); } temp_i=values[0]; temp_j=values[1]; }else if(flag==1){ view[values[0]][values[1]].setBackgroundResource(R.drawable.emptyhole); view[values[0]][values[1]].setClickable(false); } } } }
是將四行四列的ImageView定義為一個二維數(shù)組,然后生成隨機坐標進行改變圖片。
源碼:點擊打開鏈接
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android BottomSheet實現(xiàn)可拉伸控件
這篇文章主要為大家詳細介紹了Android BottomSheet實現(xiàn)可拉伸控件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11Android 桌面Widget開發(fā)要點解析(時間日期Widget)
總的來說,widget主要功能就是顯示一些信息。我們今天編寫一個很簡單的作為widget,顯示時間、日期、星期幾等信息。需要顯示時間信息,那就需要實時更新,一秒或者一分鐘更新一次2013-07-07Android實現(xiàn)微信自動向附近的人打招呼(AccessibilityService)
這篇文章主要為大家詳細介紹了實現(xiàn)微信自動向附近的人打招呼,實現(xiàn)收到指定賬戶推送文章時自動進入微信打開鏈接,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12