package com.avenwu.deepinandroid;
import android.app.ActivityOptions;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Build;
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;
/**
* Created by aven on 4/26/15.
*/
public class WindowAnimationFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.animation_layout, null);
view.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
// Using the AnimatedSubActivity also allows us to animate exiting that
// activity - see that activity for details
Intent subActivity = new Intent(v.getContext(),
AnimatedSubActivity.class);
// The enter/exit animations for the two activities are specified by xml resources
Bundle translateBundle =
ActivityOptions.makeCustomAnimation(v.getContext(),
R.anim.slide_in_left, R.anim.slide_out_left).toBundle();
getActivity().startActivity(subActivity, translateBundle);
} else {
getActivity().overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
getActivity().startActivity(new Intent(v.getContext(),
AnimatedSubActivity.class));
}
}
});
view.findViewById(R.id.image).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent subActivity = new Intent(v.getContext(),
AnimatedSubActivity.class);
// Bundle scaleBundle = ActivityOptions.makeScaleUpAnimation(
// v, 0, 0, v.getWidth(), v.getHeight()).toBundle();
// getActivity().startActivity(subActivity, scaleBundle);
v.setDrawingCacheEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
getActivity().startActivity(subActivity, ActivityOptions.makeThumbnailScaleUpAnimation(v, v.getDrawingCache(), 0, 0).toBundle());
} else {
getActivity().overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);
getActivity().startActivity(new Intent(v.getContext(),
AnimatedSubActivity.class));
}
}
});
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
ImageView imageView = (ImageView) view.findViewById(R.id.image2);
BitmapDrawable[] bitmapDrawable = new BitmapDrawable[2];
bitmapDrawable[0] = new BitmapDrawable(getResources(), BitmapFactory.decodeResource(getResources(), R.drawable.image1));
bitmapDrawable[1] = new BitmapDrawable(getResources(), BitmapFactory.decodeResource(getResources(), R.drawable.image2));
final TransitionDrawable drawable = new TransitionDrawable(bitmapDrawable);
imageView.setImageDrawable(drawable);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentDrawable == 0) {
drawable.startTransition(500);
currentDrawable = 1;
} else {
drawable.reverseTransition(500);
currentDrawable = 0;
}
}
});
view.findViewById(R.id.image3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int[] position = new int[2];
v.getLocationOnScreen(position);
startActivity(new Intent(getActivity(), ScaleSubActivity.class)
.putExtra("left", position[0]).putExtra("top", position[1])
.putExtra("width", v.getWidth()).putExtra("height", v.getHeight()));
}
});
}
int currentDrawable = 0;
}