WaterFlower.java 4.78 KB
package com.lotus.town.widget;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

import com.lotus.town.R;

public class WaterFlower extends View{

    public static class  AnimaListener{
        public void finish(){

        }
    }
    private AnimaListener listener;
    private Paint paint;

    private float translatex1 = 5;
    private float translatex2 = 5;
    private float translatex3 = 5;
    private float translatex4 = 5;
    private float translatex5 = 5;
    private float translatex6 = 5;
    private float translatex7 = 5;
    private float translatex8 = 5;

    private float translatey1 = 5;
    private float translatey2 = 5;
    private float translatey3 = 5;
    private float translatey4 = 5;
    private float translatey5 = 5;
    private float translatey6 = 5;
    private float translatey7 = 5;
    private float translatey8 = 5;

    private Bitmap water1;
    private Bitmap water2;
    private Bitmap water3;
    private Bitmap water4;
    private Bitmap water5;
    private Bitmap water6;
    private Bitmap water7;
    private Bitmap water8;

    public void initPosition(float x,float y){
        translatex1 = x;
        translatex2 = x+20;
        translatex3 = x+30;
        translatex4 = x+40;
        translatex5 = x;
        translatex6 = x-10;
        translatex7 = x-30;
        translatex8 = x-35;


        translatey1 = y+10;
        translatey2 = y+10;
        translatey3 = y+30;
        translatey4 = y+10;
        translatey5 = y;
        translatey6 = y;
        translatey7 = y+20;
        translatey8 = y;
    }


    public WaterFlower(Context context, AttributeSet attributes) {
        super(context,attributes);
        paint = new Paint();
        paint.setAntiAlias(true);
        water1 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water1);
        water2 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water2);
        water3 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water3);
        water4 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water4);
        water5 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water5);
        water6 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water6);
        water7 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water7);
        water8 = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.water8);
    }

    public WaterFlower(Context context) {
        super(context);
        paint = new Paint();
        paint.setAntiAlias(true);
    }
    public void setListener(AnimaListener listener){
        this.listener = listener;
    }

    private int waterCount = 50;
    @Override
    public void draw(Canvas canvas) {
        if(waterCount-- <=0){
            waterCount = 50;
            setVisibility(View.GONE);
            listener.finish();
            return;
        }
        Matrix matrix = new Matrix();
        matrix.setTranslate(translatex1,translatey1);
        canvas.drawBitmap(water1,matrix,paint);
        translatey1 = translatey1 - 1;


        Matrix matrix2 = new Matrix();
        matrix2.setTranslate(translatex2,translatey2);
        canvas.drawBitmap(water2,matrix2,paint);
        translatex2 = translatex2 + 0.2f;
        translatey2 = translatey2 - 0.8f;


        Matrix matrix3 = new Matrix();
        matrix3.setTranslate(translatex3,translatey3);
        canvas.drawBitmap(water3,matrix3,paint);
        translatex3 = translatex3 + 1f;
        translatey3 = translatey3 - 1.2f;
        Matrix matrix4 = new Matrix();
        matrix4.setTranslate(translatex4,translatey4);
        canvas.drawBitmap(water4,matrix4,paint);
        translatex4 = translatex4 + 1.2f;
        translatey4 = translatey4 - 0.4f;
        Matrix matrix5 = new Matrix();
        matrix.setTranslate(translatex5,translatey5);
        canvas.drawBitmap(water5,matrix5,paint);
        translatey5 = translatey5 - 0.1f;
        Matrix matrix6 = new Matrix();
        matrix6.setTranslate(translatex6,translatey6);
        canvas.drawBitmap(water6,matrix6,paint);
        translatey6 = translatey6 - 0.1f;
        Matrix matrix7 = new Matrix();
        matrix7.setTranslate(translatex7,translatey7);
        canvas.drawBitmap(water7,matrix7,paint);
        translatex7 = translatex7 - 1f;
        translatey7 = translatey7 - 1f;
        Matrix matrix8 = new Matrix();
        matrix8.setTranslate(translatex8,translatey8);
        canvas.drawBitmap(water8,matrix8,paint);
        translatex8 = translatex8 - 1f;
        translatey8 = translatey8 - 0.4f;
        super.draw(canvas);
    }

}