package com.dazhongcun.merchants.activity; import com.dazhongcun.meifa.merchants.R; import com.dazhongcun.utils.Utils; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.annotation.TargetApi; import android.graphics.Matrix; import android.graphics.RectF; import android.os.Build; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import android.text.Html; import android.text.method.LinkMovementMethod; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewPropertyAnimator; import android.widget.ImageView; import android.widget.TextView; public class About extends ActionBarActivity { TextView mTextView; ImageView mImageView; private static final int RightToLeft = 1; private static final int LeftToRight = 2; private static final int DURATION = 30000; private RectF mDisplayRect = new RectF(); private final Matrix mMatrix = new Matrix(); private int mDirection = RightToLeft; private ValueAnimator mCurrentAnimator; private float mScaleFactor; @Override protected void onCreate(Bundle savedInstanceState) { overridePendingTransition(0, 0); super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); Toolbar mainToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mainToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setDisplayShowHomeEnabled(true); // getSupportActionBar().setTitle("About"); mTextView = (TextView) findViewById(R.id.about_body); mImageView = (ImageView) findViewById(R.id.image); moveBackground(); mTextView.setText(Html.fromHtml(getString(R.string.about_cody, Utils.getVersionName(this)))); mTextView.setMovementMethod(new LinkMovementMethod()); mainToolbar.setNavigationOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) finish(); return super.onOptionsItemSelected(item); } @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); if (Utils.hasHoneycomb()) { View demoContainerView = findViewById(R.id.image); demoContainerView.setAlpha(0); ViewPropertyAnimator animator = demoContainerView.animate(); animator.alpha(1); if (Utils.hasICS()) { animator.setStartDelay(250); } animator.setDuration(1000); } } protected void moveBackground() { if (Utils.hasHoneycomb()) { mImageView.post(new Runnable() { @Override public void run() { mScaleFactor = (float) mImageView.getHeight() / (float) mImageView.getDrawable() .getIntrinsicHeight(); mMatrix.postScale(mScaleFactor, mScaleFactor); mImageView.setImageMatrix(mMatrix); animate(); } }); } } private void animate() { updateDisplayRect(); if (mDirection == RightToLeft) { animate(mDisplayRect.left, mDisplayRect.left - (mDisplayRect.right - mImageView.getWidth())); } else { animate(mDisplayRect.left, 0.0f); } } private void updateDisplayRect() { mDisplayRect.set(0, 0, mImageView.getDrawable().getIntrinsicWidth(), mImageView.getDrawable().getIntrinsicHeight()); mMatrix.mapRect(mDisplayRect); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void animate(float from, float to) { mCurrentAnimator = ValueAnimator.ofFloat(from, to); mCurrentAnimator .addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { float value = (Float) animation.getAnimatedValue(); mMatrix.reset(); mMatrix.postScale(mScaleFactor, mScaleFactor); mMatrix.postTranslate(value, 0); mImageView.setImageMatrix(mMatrix); } }); mCurrentAnimator.setDuration(DURATION); mCurrentAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { if (mDirection == RightToLeft) { mDirection = LeftToRight; // mImageView.setImageResource(R.drawable.santander2); } else { mDirection = RightToLeft; // mImageView.setImageResource(R.drawable.santander); } animate(); } }); mCurrentAnimator.start(); } @Override protected void onPause() { super.onPause(); overridePendingTransition(0, 0); } }