drawable="@drawable/girl_5"android:
duration="400"/>
xxx.java代码部分:
publicclassMFrameAnimActivityextendsActivity{
AnimationDrawablemAnimationDrawable;
ImageViewmImageView;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageView=(ImageView)findViewById(R.id.mImageView);
}
@Override
protectedvoidonResume(){
super.onResume();
mImageView.setBackgroundResource(R.anim.donghua);
mAnimationDrawable=(AnimationDrawable)mImageView.getBackground();
}
//StartFrameAnimation动画
publicbooleanonTouchEvent(MotionEventevent){
if(event.getAction()==MotionEvent.ACTION_DOWN){
//mAnimationDrawable.start();
mAnimationDrawable.run();
returntrue;
}
returnsuper.onTouchEvent(event);
}
}
五.直接在画布上描绘图形----Canvas
当编写一个绘图应用程序,希望可以做特别的绘图处理或控制图形的动作时,您需要使用称为画布(Canvas)的对象。
Canvas对您实际上绘制的图形表面来说好比是一个界面接口,它会保持住所有“draw”调用方法。
通过Canvas,您的绘图实际上是在Bitmap图形上执行,再放到window上。
您的绘图在采用onDraw()callback方法时,会获得一个Canvas,只要将绘制调用方法放到上面。
当对象是SurfaceView视图时,也可以使用SurfaceHolder.lockCanvas()方法取得一个Canvas。
代码:
BitmapmBitmap=Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);
CanvasmCanvas=newCanvas(mBitmap);
或放到Canvas的某一位置
BitmapmBitmap=BitmapFactory.decodeResource(getResource(),R.drawable.icon);
Canvascanvas=newCanvas();
canvas.drawBitmap(mBitmap,100,100,mPaint);
代码:
publicclassMCanvasActivityextendsActivity{
privateBitmapbitmap;
privateMViewmView;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
mView=newMView(this);
setContentView(mView);
}
privateclassMViewextendsView{
privatePaintpaint;
privatefloatimageX=0f;
privatefloatimageY=0f;
publicMView(Contextcontext){
super(context);
paint=newPaint();
}
@Override
protectedvoidonDraw(Canvascanvas){
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
canvas.drawText(getString(R.string.hello),100,20,paint);
canvas.drawBitmap(bitmap,imageX-bitmap.getWidth()/2,imageY-bitmap.getHeight()/2,paint);
}
@Override
publicbooleanonTouchEvent(MotionEventevent){
switch(event.getAction()){
caseMotionEvent.ACTION_DOWN:
imageX=event.getX();
imageY=event.getY();
break;
caseMotionEvent.ACTION_MOVE:
imageX=event.getX();
imageY=event.getY();
break;
caseMotionEvent.ACTION_UP:
imageX=event.getX();
imageY=event.getY();
break;
}
//再描绘的指示
invalidate();
returntrue;
}
}
}