小图片向做移动:
小图片向右移动:
代码:
package com.example.customview;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
public class CustomView extends View{
Bitmap bitmapBackground,log1,log2,pig,flower,thrid;
int viewWidth,viewHeight;
boolean isRunning=true;
int pigx,pigy,count=1,back=1;
// 在布局文件中使用
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
Log.i("TAG", "CustomView");
bitmapBackground=BitmapFactory.decodeResource(getResources(), R.drawable.background);
log1=BitmapFactory.decodeResource(getResources(), R.drawable.loading_logo);
log2=BitmapFactory.decodeResource(getResources(), R.drawable.loading_progressbar);
pig=BitmapFactory.decodeResource(getResources(), R.drawable.f007);
flower=BitmapFactory.decodeResource(getResources(), R.drawable.f008);
thrid=BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
new Thread(new Runnable() {
public void run() {
while(isRunning){
try {
// 走到左边,向右移,走到右边,再向左移
if(pigx==viewWidth-pig.getWidth()){
back=1;
}
if(pigx<pig.getWidth()){
back=2;
}
switch (back) {
case 1:
pigx-=30;
break;
case 2:
pigx+=30;
break;
}
postInvalidate();
Thread.currentThread().sleep(500);
} catch (Exception e) {
//ExceptionUtil.handleException(e);
}
}
}
}).start();;
}
@Override
protected void onDraw(Canvas canvas) {
Log.i("TAG", "onDraw");
Paint paint=new Paint();
for(int col=0;col<viewWidth/bitmapBackground.getWidth()+1;col++){
for(int row=0;row<viewHeight/bitmapBackground.getHeight()+1;row++){
canvas.drawBitmap(bitmapBackground,
col*bitmapBackground.getWidth(),
row*bitmapBackground.getHeight(), paint);
}
}
int logwdith=(viewWidth-log1.getWidth())/2;
int logHeith=(viewHeight-log1.getHeight())/2;
//Log.i("TAG", "logHeith="+logHeith);
canvas.drawBitmap(log1, logwdith, logHeith, paint);
int log2Left=(viewWidth-log2.getWidth())/2;
int log2Top=logHeith+log2.getHeight()+10;
//Log.i("TAG", "log2Top="+log2Top);
canvas.drawBitmap(log2, log2Left, log2Top, paint);
pigy=logwdith/2;
Log.i("TAG", "pigy="+pigy);
// 显示3幅画
switch (count) {
case 1:
canvas.drawBitmap(pig, pigx, pigy, paint);
count=2;
break;
case 2:
canvas.drawBitmap(flower, pigx, pigy, paint);
count=3;
break;
case 3:
canvas.drawBitmap(thrid, pigx, pigy, paint);
count=1;
break;
}
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
// TODO Auto-generated method stub
super.onSizeChanged(w, h, oldw, oldh);
viewWidth=w;
viewHeight=h;
pigx=w-pig.getWidth();
Log.i("TAG", "pigx="+pigx);
Log.i("TAG", "onSizeChanged");
}
}
其他2个文件: