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

需要新建两个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;



//继承View


public 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();
}

@Override
protected 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 {

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

//这是自定义的view对象
  Draw view = new Draw(this);

//将view显示出来
  setContentView(view);
}

} 

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

你可能感兴趣的:(Android----线程实现图片移动)