Android碰撞的小球,密集恐惧症者谨慎

今天又温习了一遍Java的进程。正好用Android写了一个小Demo,具体就是在手机屏幕上显示多个运动的小球,小球碰到手机屏幕边缘会自动弹回。大概就是下面图中显示的:


该本主要的结束的是自定义View封装,View视图绘制,通过xml文件自定义View属性并设置属性,多线程Thread,小球碰撞弹回简单算法。

下面是制作这个Demo的简单步骤:

step1:自定义一个View抽象类,它封装了View类的基本方法,以及多线程的创建和操作方法。具体代码如下:

<span style="font-size:12px;">package com.example.constumeview;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.View;
public abstract class BaseCustomeView extends View {
	private MyThread myThread = null;
	private class MyThread extends Thread{
		@Override
		public void run() {
			while(true){
				logicalDo();
				postInvalidate(); //通知更新界面,会重新调用onDraw()函数
				try{
					sleep(80);
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}
	}
	public abstract void logicDo(); //逻辑处理方法
	public abstract void drawSub(Canvas canvas); //绘画内容代码
	public abstract void initView();
	@Override
	protected void onDraw(Canvas canvas) {
		if(myThread == null){  //第一次调用onDraw()方法的时候会创建一个线程,用来实现小球的碰撞弹回
			initView();<span style="white-space:pre">			</span>//初始化View方法
			myThread = new MyThread();
			myThread.start();    //启动线程
		}else{ 
			drawSub(canvas);    //如果线程以创建,则调用绘制方法
		}
	}
	public BaseCustomeView(Context context) {
		super(context);
	}
	public BaseCustomeView(Context context, AttributeSet attrs) {
		super(context,
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值