使用Handler实现打地鼠(下)
来源:互联网 发布:广州公交线路查询软件 编辑:程序博客网 时间:2024/05/22 23:58
package com.studio.handlerproject;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.lang.ref.WeakReference;import java.util.Random;public class DiglettActivity extends AppCompatActivity implements View.OnClickListener, View.OnTouchListener { public static final int CODE = 123; private TextView mResultTextView; private ImageView mDiglettImageView; private Button mStartButton; public int[][] mPosition = new int[][]{ {342, 180}, {432, 880}, {521, 250}, {429, 780}, {456, 976}, {145, 665}, {123, 678}, {564, 567} }; private int mTotalCount; private int mSuccessCount; public static final int MAX_COUNT = 10; private DiglettHandler mHandler = new DiglettHandler(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_diglett); initView(); setTitle("打地鼠"); } private void initView() { mResultTextView = (TextView) findViewById(R.id.text_view); mDiglettImageView = (ImageView) findViewById(R.id.image_view); mStartButton = (Button) findViewById(R.id.start_button); mStartButton.setOnClickListener(this); mDiglettImageView.setOnTouchListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.start_button: start(); break; } } private void start() { //发送消息 handler.sendmessagedelayed mResultTextView.setText("开始"); mStartButton.setText("游戏中"); mStartButton.setEnabled(false); next(0); } private void next(int delayTime) { int position = new Random().nextInt(mPosition.length); Message message = Message.obtain(); message.what = CODE; message.arg1 = position; mHandler.sendMessageDelayed(message, delayTime); mTotalCount++; } @Override public boolean onTouch(View view, MotionEvent motionEvent) { view.setVisibility(View.GONE); mSuccessCount++; mResultTextView.setText("打到了" + mSuccessCount + "只,共" + MAX_COUNT + "只"); return false; } public static class DiglettHandler extends Handler { public static final int RANDOM_NUMBER = 500; public final WeakReference<DiglettActivity> mWeakReference; public DiglettHandler(DiglettActivity activity) { this.mWeakReference = new WeakReference<>(activity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); DiglettActivity activity = mWeakReference.get(); switch (msg.what) { case CODE: if (activity.mTotalCount > MAX_COUNT) { activity.clear(); Toast.makeText(activity, "地鼠打完了!", Toast.LENGTH_SHORT).show(); return; } int position = msg.arg1; activity.mDiglettImageView.setX(activity.mPosition[position][0]); activity.mDiglettImageView.setY(activity.mPosition[position][1]); activity.mDiglettImageView.setVisibility(View.VISIBLE); int randomTime = new Random().nextInt(RANDOM_NUMBER) + RANDOM_NUMBER; activity.next(randomTime); break; } } } private void clear() { mTotalCount = 0; mSuccessCount = 0; mDiglettImageView.setVisibility(View.GONE); mStartButton.setText("点击开始"); mStartButton.setEnabled(true); }}
阅读全文
0 0
- 使用Handler实现打地鼠(下)
- 使用Handler实现打地鼠(上)
- Handler实现的打地鼠游戏
- 打地鼠游戏实现
- Qt5实现打地鼠
- js实现打地鼠
- 4.打地鼠实现
- 如何使用C语言实现打地鼠的游戏
- android实现打地鼠游戏
- JavaScript实现打地鼠小游戏
- Android打地鼠的实现
- 打地鼠
- 打地鼠
- 打地鼠
- 打地鼠
- 打地鼠
- 打地鼠
- Android开发之Thread+Handler示例(打地鼠)
- POJ3258 什么东西过河?? 贪心+二分, 贪心的证明????
- HDU-6150 Vertex Cover(构造)
- zoj 3233 Lucky Number(容斥原理)
- python中join()函数详解
- Oracle导入导出
- 使用Handler实现打地鼠(下)
- 浅谈tcp cubic拥塞算法以及优化建议
- 203. Remove Linked List Elements
- django学习笔记(二)——mysql数据库
- 整理出来前端面试题 js篇
- 类,对象,属性,方法是什么
- 单片机汇编代码分析示例
- 罗素说理想与历程—幸福心灵的获取
- [kmp] hdu6153 A Secret