背景图片不断下移的效果

来源:互联网 发布:breakwall mac 下载 编辑:程序博客网 时间:2024/06/05 17:53

/MoveBack/src/com/lxm/moveback/MainActivity.java

package com.lxm.moveback;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new MyView(this));}class MyView extends View{final int BACK_HEIGHT = 1700;private Bitmap plane;private Bitmap back;final int WIDTH = 320;final int HEIGHT = 440;private int startY = BACK_HEIGHT - HEIGHT;public MyView(Context context) {super(context);plane = BitmapFactory.decodeResource(context.getResources(),R.drawable.plane);back = BitmapFactory.decodeResource(context.getResources(),R.drawable.back_img);final Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {if (startY <= 0){startY = BACK_HEIGHT - HEIGHT;}else{startY -= 3;}invalidate();}};new Timer().schedule(new TimerTask() {@Overridepublic void run() {handler.sendEmptyMessage(0x123);}},0, 100);}@Overrideprotected void onDraw(Canvas canvas) {Bitmap bitmap2 = Bitmap.createBitmap(back, 0, startY, WIDTH, HEIGHT);canvas.drawBitmap(bitmap2, 0, 0, null);canvas.drawBitmap(plane, 160, 360, null);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
效果图:

源码下载

0 0