2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 安卓自定义view动画案例

安卓自定义view动画案例

时间:2019-04-15 02:49:28

相关推荐

安卓自定义view动画案例

小图片向做移动:

小图片向右移动:

代码:

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个文件:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。