亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Android實現(xiàn)擲骰子效果

瀏覽:3日期:2022-09-24 10:27:29

本文實例為大家分享了Android實現(xiàn)擲骰子效果的具體代碼,供大家參考,具體內(nèi)容如下

利用handler接受子線程的消息完成骰子點數(shù)的不斷更替

演示

START:開始游戲STOP:停止游戲RECOVER:重置色子到初始狀態(tài)

Android實現(xiàn)擲骰子效果

代碼

package com.example.homeworkten;import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private ImageView imageView1,imageView2,imageView3; private Button button1,button2,button3; private ImageView[] imageViews; private Handler handler; //子線程 private Thread thread; //記錄每個色子的點數(shù) private int number[]; //色子的總點數(shù) private int count; //volatile修飾符用來保證其它線程讀取的總是該變量的最新的值 public volatile boolean isStop = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); number = new int[3]; imageView1 = findViewById(R.id.imageView1); imageView2 = findViewById(R.id.imageView2); imageView3 = findViewById(R.id.imageView3); button1 = findViewById(R.id.button1); button2 = findViewById(R.id.button2); button3 = findViewById(R.id.button3); imageViews = new ImageView[]{imageView1,imageView2,imageView3}; button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //判斷線程是否存在 if (thread != null&&isStop == true){ isStop = false; } handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); for(int i = 0;i < 3;i++) { switch (number[i]) { case 1: imageViews[i].setImageResource(R.drawable.t1); break; case 2: imageViews[i].setImageResource(R.drawable.t2); break; case 3: imageViews[i].setImageResource(R.drawable.t3); break; case 4: imageViews[i].setImageResource(R.drawable.t4); break; case 5: imageViews[i].setImageResource(R.drawable.t5); break; case 6: imageViews[i].setImageResource(R.drawable.t6); break; } } } }; thread = new Thread(new Runnable() { @Override public void run() { while (!isStop) { Message message = handler.obtainMessage(); //總點數(shù)歸零 count = 0; for (int i = 0; i < 3; i++) { try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } //生成隨機(jī)數(shù) int random = (int) (Math.random() * 6 + 1); number[i] = random; count += random; } handler.sendMessage(message); } } }); thread.start(); } }); //停止擲篩子 button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(isStop == false) { isStop = true; try { //當(dāng)子線程執(zhí)行完以后才繼續(xù)執(zhí)行主線程 thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } //顯示擲出的點數(shù) Toast.makeText(MainActivity.this, '你擲的點數(shù)為' + count, Toast.LENGTH_SHORT).show(); }else { Toast.makeText(MainActivity.this, '請點擊開始鍵進(jìn)行擲色子', Toast.LENGTH_SHORT).show(); } } }); //將色子還原到初始狀態(tài) button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(isStop == true) { for (int i = 0; i < 3; i++) { imageViews[i].setImageResource(R.drawable.t1); } }else { Toast.makeText(MainActivity.this, '請先停止游戲,再重新開始', Toast.LENGTH_SHORT).show(); } } }); }}

<?xml version='1.0' encoding='utf-8'?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' tools:context='.MainActivity'> <ImageView android: android:layout_width='100dp' android:layout_height='80dp' android:layout_marginStart='10dp' android:layout_marginLeft='10dp' android:layout_marginTop='40dp' android:layout_marginEnd='10dp' android:layout_marginRight='10dp' app:layout_constraintEnd_toStartOf='@+id/imageView2' app:layout_constraintHorizontal_bias='0.482' app:layout_constraintStart_toStartOf='parent' app:layout_constraintTop_toTopOf='parent' app:srcCompat='@drawable/t1' /> <ImageView android: android:layout_width='100dp' android:layout_height='80dp' android:layout_marginStart='10dp' android:layout_marginLeft='10dp' android:layout_marginTop='40dp' android:layout_marginEnd='10dp' android:layout_marginRight='10dp' app:layout_constraintEnd_toStartOf='@+id/imageView3' app:layout_constraintStart_toEndOf='@+id/imageView1' app:layout_constraintTop_toTopOf='parent' app:srcCompat='@drawable/t1' /> <Button android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginStart='10dp' android:layout_marginLeft='10dp' android:layout_marginTop='40dp' android:layout_marginEnd='10dp' android:layout_marginRight='10dp' android:text='start' app:layout_constraintEnd_toStartOf='@+id/button2' app:layout_constraintStart_toStartOf='parent' app:layout_constraintTop_toBottomOf='@+id/imageView1' /> <Button android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginStart='10dp' android:layout_marginLeft='10dp' android:layout_marginTop='40dp' android:layout_marginEnd='10dp' android:layout_marginRight='10dp' android:text='stop' app:layout_constraintEnd_toStartOf='@+id/button3' app:layout_constraintStart_toEndOf='@+id/button1' app:layout_constraintTop_toBottomOf='@+id/imageView2' /> <Button android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_marginStart='10dp' android:layout_marginLeft='10dp' android:layout_marginTop='40dp' android:layout_marginEnd='10dp' android:layout_marginRight='10dp' android:text='recover' app:layout_constraintEnd_toEndOf='parent' app:layout_constraintStart_toEndOf='@+id/button2' app:layout_constraintTop_toBottomOf='@+id/imageView3' /> <ImageView android: android:layout_width='100dp' android:layout_height='80dp' android:layout_marginStart='10dp' android:layout_marginLeft='10dp' android:layout_marginTop='40dp' android:layout_marginEnd='10dp' android:layout_marginRight='10dp' app:layout_constraintEnd_toEndOf='parent' app:layout_constraintStart_toEndOf='@+id/imageView2' app:layout_constraintTop_toTopOf='parent' app:srcCompat='@drawable/t1' /></androidx.constraintlayout.widget.ConstraintLayout>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 国产伦精品一区二区三区免费迷 | 日本一级片在线播放 | 国产人成亚洲第一网站在线播放 | 亚洲精品专区一区二区三区 | bt7086福利一区国产 | 午夜国产福利视频一区 | 久草在线综合 | 亚洲人成在线观看一区二区 | 全黄a免费一级毛片人人爱 全黄一级裸片视频在线观看 | 偷拍自拍日韩 | 国产综合色在线视频区 | 成本人h片3d动漫网站在线看 | 中文色 | 无遮挡高清一级毛片免费 | 成熟女人特级毛片www免费 | 国产在线播放网址 | 91国内精品久久久久影院优播 | 精品国产区一区二区三区在线观看 | 国产精品嫩草影院视频 | 久久青草网站 | 色鬼影院 | 久久久精品2018免费观看 | 在线看片日韩 | 欧美日韩国产高清精卡 | 国产a三级三级三级 | 中国美女bbbbbxxxxx | 青草国产在线视频 | 中国一级毛片免费看视频 | 快射视频在线观看 | 精品在线免费观看 | 一级片在线视频 | 久久亚洲这里只有精品18 | 很黄的网站在线观看 | 一级做a爱过程免费视频时看 | 久久久成人啪啪免费网站 | 黄网站免费视频 | 毛片大全免费看 | 特级黄aaaaaaaaa毛片 | 欧美久在线观看在线观看 | 原味小视频在线www国产 | 国产精品酒店 |