package net.qiujuer.tips.view.activity; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ImageView; import net.qiujuer.tips.R; import net.qiujuer.tips.factory.presenter.SharePresenter; import net.qiujuer.tips.factory.view.ShareView; import net.qiujuer.tips.open.Share; public class ShareActivity extends BlurActivity implements View.OnClickListener, ShareView { private ImageView mSrcView; private Bitmap mSrc; private SharePresenter mPresenter; private String mTitle; private String mSummary; private View mOperation; public static void actionStart(Context context, String title, String summary) { Intent intent = new Intent(context, ShareActivity.class); intent.putExtra("title", title); intent.putExtra("summary", summary); context.startActivity(intent); } private void initData() { Intent intent = getIntent(); if (intent != null) { mTitle = intent.getStringExtra("title"); mSummary = intent.getStringExtra("summary"); } if (mTitle == null || mTitle.length() == 0) mTitle = ""; if (mSummary == null || mSummary.length() == 0) mSummary = ""; } @Override protected int getContentView() { return R.layout.activity_share; } @Override protected void onInit(Bundle savedInstanceState) { initData(); mPresenter = new SharePresenter(this); mSrcView = (ImageView) findViewById(R.id.share_src); mOperation = findViewById(R.id.lay_operation); findViewById(R.id.share_wechat).setOnClickListener(this); findViewById(R.id.share_wechatfriends).setOnClickListener(this); findViewById(R.id.share_sina_weibo).setOnClickListener(this); findViewById(R.id.share_qq).setOnClickListener(this); mSrc = getBlurSrcBitmap(); mSrcView.setOnClickListener(this); mSrcView.setImageBitmap(mSrc); shrink(mSrcView); } @Override protected void onInitToolBar() { // NULL /* Animation animation = AnimationUtils.loadAnimation(this, R.anim.anim_in_slide_left); LayoutAnimationController checkAnim = new LayoutAnimationController(animation, 0.3f); checkAnim.setOrder(LayoutAnimationController.ORDER_NORMAL); fControl.setLayoutAnimation(checkAnim); */ } public void shrink(final View view) { ObjectAnimator anim = ObjectAnimator .ofFloat(view, "size", 1.0F, 0.75F) .setDuration(480); anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { float cVal = (Float) animation.getAnimatedValue(); view.setScaleX(cVal); view.setScaleY(cVal); if (cVal <= 0.75) { showOperation(); } } }); anim.start(); } public void blowup(final View view) { ObjectAnimator anim = ObjectAnimator .ofFloat(view, "size", 0.75F, 1.0F) .setDuration(360); anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { float cVal = (Float) animation.getAnimatedValue(); view.setScaleX(cVal); view.setScaleY(cVal); if (cVal == 1.0F) { finish(); } } }); anim.start(); } private void showOperation() { Animation anim = AnimationUtils.loadAnimation(this, R.anim.anim_in_slide_alpha_bottom); mOperation.setVisibility(View.VISIBLE); mOperation.startAnimation(anim); } @Override protected void onDestroy() { super.onDestroy(); mSrc.recycle(); mSrc = null; } @Override public void onBackPressed() { blowup(mSrcView); } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.share_src) { blowup(mSrcView); } else if (id == R.id.share_wechat) { mPresenter.share(Share.TYPE_WX); } else if (id == R.id.share_wechatfriends) { mPresenter.share(Share.TYPE_WXF); } else if (id == R.id.share_sina_weibo) { mPresenter.share(Share.TYPE_WB); } else if (id == R.id.share_qq) { mPresenter.share(Share.TYPE_QQ); } } @Override public Activity getActivity() { return this; } @Override public Bitmap getBitmap() { return mSrc; } @Override public String getShareTitle() { return mTitle; } @Override public String getShareSummary() { return mSummary; } }