package im.zico.wingtwitter.ui.activity; import android.app.Fragment; import android.app.FragmentManager; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.ScaleAnimation; import android.widget.ImageView; import com.squareup.picasso.Callback; import com.squareup.picasso.Picasso; import java.security.Key; import im.zico.wingtwitter.R; import im.zico.wingtwitter.dao.WingStore; import im.zico.wingtwitter.type.WingTweet; import im.zico.wingtwitter.ui.BaseActivity; import im.zico.wingtwitter.ui.fragment.DMFragment; import im.zico.wingtwitter.ui.fragment.HomeTimeLineFragment; import im.zico.wingtwitter.ui.fragment.MentionedFragment; import uk.co.senab.photoview.PhotoViewAttacher; /** * Created by tinyao on 1/8/15. */ public class PhotoViewActivity extends BaseActivity { private ViewPager mViewPager; // private static boolean justLaunched = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_photoview); String[] mediaUrls = null; if (getIntent().hasExtra(WingStore.TweetColumns.MEDIAS)) { // justLaunched = true; mediaUrls = getIntent().getStringArrayExtra(WingStore.TweetColumns.MEDIAS); mViewPager = (ViewPager) findViewById(R.id.pager); PhotoPagerAdapter mPhotoPagerAdapter = new PhotoPagerAdapter(getFragmentManager()); mPhotoPagerAdapter.setMediaUrls(mediaUrls); mViewPager.setAdapter(mPhotoPagerAdapter); mViewPager.setOffscreenPageLimit(2); mViewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.page_margin)); mViewPager.setCurrentItem(getIntent().getIntExtra("position", 0)); } else { finishAfterTransition(); } } private class PhotoPagerAdapter extends FragmentPagerAdapter { String[] medias; public PhotoPagerAdapter(FragmentManager fm) { super(fm); } public void setMediaUrls(String[] medias) { this.medias = medias; } @Override public Fragment getItem(int position) { return PhotoFragment.newInstance(position, medias[position]); } @Override public int getCount() { return medias.length; } } static class PhotoFragment extends Fragment { public static PhotoFragment newInstance(int pos, String mediaUrl) { PhotoFragment fragment = new PhotoFragment(); Bundle args = new Bundle(); args.putInt("fragment_id", pos); args.putString("mediaUrl", mediaUrl); fragment.setArguments(args); return fragment; } private String photoUrl; PhotoViewAttacher mAttacher; ImageView imgV; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bnd = getArguments(); if (bnd != null && bnd.containsKey("mediaUrl")) { photoUrl = bnd.getString("mediaUrl"); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LayoutInflater inflator = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rootView = inflator.inflate(R.layout.layout_photo, null); imgV = (ImageView) rootView.findViewById(R.id.photo_view); imgV.setTransitionName(photoUrl); if (photoUrl != null) { Picasso.with(getActivity()).load(photoUrl).fit().centerInside().into(imgV, new Callback() { @Override public void onSuccess() { // if (justLaunched) { // ScaleAnimation anim = new ScaleAnimation(0.5f, 1.0f, 0.5f, 1.0f, // getResources().getDisplayMetrics().widthPixels/2, // getResources().getDisplayMetrics().heightPixels/2); // anim.setDuration(400); // anim.setStartOffset(50); // imgV.setAnimation(anim); // imgV.animate(); // justLaunched = false; // } mAttacher = new PhotoViewAttacher(imgV); mAttacher.setOnViewTapListener(new PhotoViewAttacher.OnViewTapListener() { @Override public void onViewTap(View view, float v, float v2) { getActivity().finish(); } }); } @Override public void onError() { } }); } return rootView; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); } } @Override protected void onDestroy() { super.onDestroy(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { finishAfterTransition(); return false; } return super.onKeyDown(keyCode, event); } // @Override // public void onWindowFocusChanged(boolean hasFocus) { // super.onWindowFocusChanged(hasFocus); // if (hasFocus) { // getWindow().getDecorView().setSystemUiVisibility( // View.SYSTEM_UI_FLAG_LAYOUT_STABLE // | View.SYSTEM_UI_FLAG_FULLSCREEN // | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);} // } }