Android code cut 1 --圆形在屏幕撞墙弹回

package com.example.helloandroid;

 

import android.app.Activity;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.os.Bundle;

import android.os.Handler;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class HelloAndroid extends Activity {  

 

    private TextView mTextView01;

    private TextView mTextView02;

    private Button mButtonView01;

    private static final String url = "file:///android_asset/index.html";  

    @Override  

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);

        MyView myView = new MyView(this);

        //setContentView(R.layout.main); 

        setContentView(myView);          

 

    }

 

    /*自定义继承View的MyView*/

    private class MyView extends View implements Runnable

    {

     boolean isRunning = true;

     int radius = 30;

     int left = 30;

     int top = 30;

     Handler handler;

     int dx=1;

     int dy=1;

    

     public MyView(Context context)

     {

     super(context);

     handler = new Handler();

     new Thread(this).start();

     }

     /*重写onDraw()*/

     @Override

     protected void onDraw(Canvas canvas)

     {

     super.onDraw(canvas);

     canvas.drawColor(Color.WHITE);//背景色为白

     Paint paint = new Paint();

     paint.setAntiAlias(true);//去锯齿

     paint.setColor(Color.RED);

     paint.setStyle(Paint.Style.STROKE);//空心的

     paint.setStrokeWidth(3);//外框宽度

    

     /*画空心圆形*/

     canvas.drawCircle(left, top, radius, paint);

    

     }

    

     @Override

     public boolean onTouchEvent(MotionEvent event){

     isRunning = false;

     return true;

     }

    

    

public void run() {

// TODO Auto-generated method stub

while(isRunning){

dx = left < radius || left > (getWidth()-radius)? -dx:dx;

dy = top < radius || top > (getHeight()-radius)? -dy:dy;

left = left + dx;

top = top + dy;

handler.post(new Runnable(){

public void run(){

invalidate();

}

}

);

try{

Thread.sleep(10);

}catch(InterruptedException e){

e.printStackTrace();

}

}

}

    }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值