Skip to content

Instantly share code, notes, and snippets.

View domsu's full-sized avatar
👋

Dominik Suszczewicz domsu

👋
View GitHub Profile
@Overrid
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(10, 15);
canvas.drawText("Hello world", 1, 5, p);
canvas.restore();
}
private void loadImageWithReduction(ImageView view, int imageIndex) {
Drawable drawable = changeColorOfDrawable(R.drawable.face_black, Color.parseColor(drawableColor[imageIndex]));
view.setImageDrawable(drawable);
}
private Drawable changeColorOfDrawable(@DrawableRes int drawableResId, int color) {
Drawable drawable = ContextCompat.getDrawable(this, drawableResId);
drawable.mutate().setColorFilter(color, PorterDuff.Mode.SRC_IN);
return drawable;
private void animateSingleView(ViewGroup windowRoot, int viewPosition, View view) {
view.setTranslationY(windowRoot.getHeight());
view.setAlpha(0);
view.animate()
.translationY(0)
.alpha(1)
.setStartDelay(START_DELAY)
.setDuration(DURATION_INITIAL + DURATION_NEXT_VIEW_FACTOR * viewPosition)
.setInterpolator(new DecelerateInterpolator(INTERPOLATOR_FACTOR)).start();
private void startSlideInAnimation() {
ViewGroup windowRoot = (ViewGroup) findViewById(android.R.id.content);
ViewGroup contentRoot = (ViewGroup) windowRoot.getChildAt(0);
for (int i = 0; i < contentRoot.getChildCount(); i++) {
View v = contentRoot.getChildAt(i);
animateSingleView(windowRoot, i, v);
}
}
private boolean animated = false;
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && !animated) {
startSlideInAnimation();
animated = true;
}
animatorSet.start();
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(revealAnimator).before(alphaAnimator);
animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
value.setText("0");
overlay.remove(revealView);
}
})
Animator alphaAnimator = ObjectAnimator.ofFloat(revealView, View.ALPHA, 0.0f);
alphaAnimator.setDuration(getResources().getInteger(android.R.integer.config_mediumAnimTime));
float radius = (float) Math.sqrt(Math.pow(container.getHeight(), 2) + Math.pow(container.getWidth(), 2));
Animator revealAnimator = ViewAnimationUtils.createCircularReveal(revealView, revealView.getWidth(), revealView.getHeight(), 0.0f, radius);
revealAnimator.setDuration(getResources().getInteger(android.R.integer.config_longAnimTime));
revealAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
value.setText("0");
}
});
ViewGroupOverlay overlay = container.getOverlay();
final View revealView = new View(this);
revealView.setBottom(container.getHeight());
revealView.setRight(container.getWidth());
revealView.setBackgroundColor(ContextCompat.getColor(this, R.color.colorAccent));
overlay.add(revealView);