package at.favre.app.dalitest.fragment;
import android.databinding.DataBindingUtil;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import at.favre.app.dalitest.R;
import at.favre.app.dalitest.databinding.FragmentSimpleBlurBinding;
import at.favre.lib.dali.Dali;
import at.favre.lib.dali.builder.ImageReference;
import at.favre.lib.dali.builder.animation.BlurKeyFrame;
import at.favre.lib.dali.builder.animation.BlurKeyFrameManager;
import at.favre.lib.dali.builder.animation.BlurKeyFrameTransitionAnimation;
public class SimpleAnimationFragment extends Fragment{
private FragmentSimpleBlurBinding binding;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_simple_blur, container, false);
Dali dali = Dali.create(getActivity());
final ImageView iv = binding.image;
dali.load(R.drawable.test_img1).blurRadius(24).into(iv);
final Bitmap original = new ImageReference(R.drawable.test_img1).synchronouslyLoadBitmap(getResources());
BlurKeyFrameManager man = new BlurKeyFrameManager();
man.addKeyFrame(new BlurKeyFrame(2,4,0,300));
man.addKeyFrame(new BlurKeyFrame(2,8,0,300));
man.addKeyFrame(new BlurKeyFrame(2,12,0,300));
man.addKeyFrame(new BlurKeyFrame(2,16,0,300));
man.addKeyFrame(new BlurKeyFrame(2,20,0,300));
final BlurKeyFrameTransitionAnimation animation = new BlurKeyFrameTransitionAnimation(getActivity(),man);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animation.start(iv);
}
});
binding.subtitle1.setText(man.toString());
final ImageView iv2 = binding.image2;
dali.load(R.drawable.test_img1).blurRadius(24).brightness(0).noFade().into(iv2);
BlurKeyFrameManager man2 = BlurKeyFrameManager.createLinearKeyFrames(8,700,4,20,95);
final BlurKeyFrameTransitionAnimation animation2 = new BlurKeyFrameTransitionAnimation(getActivity(),man2);
iv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animation2.start(iv2);
}
});
binding.subtitle2.setText(man2.toString());
final ImageView iv3 = binding.image3;
dali.load(R.drawable.test_img1).blurRadius(12).downScale(2).reScale().into(iv3);
BlurKeyFrameManager man3 = BlurKeyFrameManager.createLinearKeyFrames(4,1000,4,20,-80);
final BlurKeyFrameTransitionAnimation animation3 = new BlurKeyFrameTransitionAnimation(getActivity(),man3);
iv3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animation3.start(iv3);
}
});
binding.subtitle3.setText(man3.toString());
final ImageView iv4 = binding.image4;
// Dali.create(getActivity()).load(R.drawable.test_img1).blurRadius(12).downScale(3).reScale().into(iv4);
//
// BlurKeyFrameManager man4 = BlurKeyFrameManager.createLinearKeyFrames(2,10000,4,20,-80);
//
// final BlurKeyFrameTransitionAnimation animation4 = new BlurKeyFrameTransitionAnimation(getActivity(),man4);
//
// iv4.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// animation4.start(iv4);
// }
// });
//
// binding.subtitle4.setText(man4.toString());
new Thread(new Runnable() {
@Override
public void run() {
animation.prepareAnimation(original);
animation2.prepareAnimation(original);
animation3.prepareAnimation(original);
// animation4.prepareAnimation(original);
}
}).start();
// Create red and green bitmaps to cross-fade between
Bitmap bitmap0 = Bitmap.createBitmap(500, 300, Bitmap.Config.ARGB_8888);
Bitmap bitmap1 = Bitmap.createBitmap(500, 300, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap0);
canvas.drawColor(Color.BLUE);
canvas = new Canvas(bitmap1);
canvas.drawColor(Color.BLACK);
BitmapDrawable drawables[] = new BitmapDrawable[2];
drawables[1] = new BitmapDrawable(getResources(), dali.load(R.drawable.test_img1).brightness(0).copyBitmapBeforeProcess().blurRadius(2).skipCache().get().getBitmap());
drawables[0] = new BitmapDrawable(getResources(), dali.load(R.drawable.test_img1).brightness(-70).copyBitmapBeforeProcess().blurRadius(2).skipCache().get().getBitmap());
// BitmapDrawable drawables[] = new BitmapDrawable[2];
// drawables[0] = new BitmapDrawable(getResources(), bitmap0);
// drawables[1] = new BitmapDrawable(getResources(), bitmap1);
// Add the red/green bitmap drawables to a TransitionDrawable. They are layered
// in the transition drawalbe. The cross-fade effect happens by fading one out and the
// other in.
final TransitionDrawable crossfader = new TransitionDrawable(drawables);
iv4.setImageDrawable(crossfader);
crossfader.setCrossFadeEnabled(false);
// Clicking on the drawable will cause the cross-fade effect to run. Depending on
// which drawable is currently being shown, we either 'start' or 'reverse' the
// transition, which determines which drawable is faded out/in during the transition.
iv4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
crossfader.reverseTransition(1);
crossfader.startTransition(1800);
// new Handler().postDelayed(new Runnable() {
// @Override
// public void run() {
// crossfader.resetTransition();
// }
// },1800);
}
});
return binding.getRoot();
}
}