package com.rendernode.test.view;
import android.content.Context;
import com.glview.animation.ObjectAnimator;
import com.glview.animation.ValueAnimator;
import com.glview.animation.ValueAnimator.AnimatorUpdateListener;
import com.glview.graphics.Bitmap;
import com.glview.graphics.drawable.BitmapDrawable;
import com.glview.graphics.shader.BlurShader;
import com.glview.hwui.GLCanvas;
import com.glview.hwui.GLPaint;
import com.glview.view.View;
import com.rendernode.test.R;
public class BlurView extends View {
BlurShader mShader = new BlurShader();
GLPaint mPaint = new GLPaint();
Bitmap mBitmap;
ValueAnimator mAnimator;
public BlurView(Context context) {
super(context);
mPaint.setShader(mShader);
mBitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.bitmap1)).getBitmap();
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
mAnimator = ObjectAnimator.ofFloat(mShader, "radius", 1, 10).setDuration(1000);
mAnimator.setRepeatCount(ValueAnimator.INFINITE);
mAnimator.setRepeatMode(ValueAnimator.REVERSE);
mAnimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
invalidate();
}
});
mAnimator.start();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
mAnimator.end();
mAnimator = null;
}
@Override
protected void onDraw(GLCanvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(mBitmap, 0, 0, mPaint);
}
}