Android----线程实现图片移动

来源:互联网 发布:2017nba西部决赛数据 编辑:程序博客网 时间:2024/06/05 12:45
需要新建两个class,一个继承Activity,一个继承View

package com.mrzhu.drawtest;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.os.Handler;import android.view.View;//继承Viewpublic class Draw extends View implements Runnable{//用于显示的图片private Bitmap bmp;//图片的Left,Top值   private int left = 0;private int top = 0;//用于同步线程private Handler handler;  //X轴方向的增量private int dx = 5;           public Draw(Context context) {  super(context);  //通过id取得图片  bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);  handler = new Handler();//启动线程  new Thread(this).start();}@Overrideprotected void onDraw(Canvas canvas) {  super.onDraw(canvas);//在屏幕上绘制图片  canvas.drawBitmap(bmp, left, top, null);}public void run() {  while(true){//判断是否到达屏幕边界   dx = left < 0 || left > (getWidth() - bmp.getWidth())? - dx : dx;//x轴方向增加   left = left + dx;;   handler.post(new Runnable() {    public void run() {//更新视图(View)的方法     invalidate();    }   });   try {    Thread.sleep(50);   } catch (InterruptedException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }  }}}

package com.mrzhu.drawtest;import android.app.Activity;import android.os.Bundle;public class DrawTestActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);//这是自定义的view对象  Draw view = new Draw(this);//将view显示出来  setContentView(view);}} 

 
 
资源下载:http://download.csdn.net/detail/zlqqhs/4681282