package com.if3games.chessonline; import com.if3games.chessonline.activities.Preferences; import com.if3games.chessonline.data.ConstantsData; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.DecelerateInterpolator; import android.view.animation.ScaleAnimation; import android.view.animation.TranslateAnimation; import android.view.animation.Animation.AnimationListener; import android.widget.Button; public class MainActivity extends Activity { public final static int REQUEST_CODE_MINIGAME = 1; SharedPreferences settings; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_new); PreferenceManager.setDefaultValues(this, R.xml.preferences, false); settings = PreferenceManager.getDefaultSharedPreferences(this); settings.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { } }); Button play = (Button) findViewById(R.id.play); play.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setClassName(ConstantsData.PACKAGE_NAME , ConstantsData.PACKAGE_NAME + ".DroidFish"); intent.putExtra("gms", 0); startActivity(intent); } }); play.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motion) { switch ( motion.getAction() ) { case MotionEvent.ACTION_DOWN: view.setBackgroundResource(R.drawable.button_play_down); view.startAnimation(buttonUpDownAnimate(true)); break; case MotionEvent.ACTION_UP: view.setBackgroundResource(R.drawable.button_play_new); view.startAnimation(buttonUpDownAnimate(false)); break; case MotionEvent.ACTION_CANCEL: view.setBackgroundResource(R.drawable.button_play_new); view.startAnimation(buttonUpDownAnimate(false)); break; } return false; } }); Button multiplayer = (Button) findViewById(R.id.multiplayer_btn); multiplayer.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(); intent.setClassName(ConstantsData.PACKAGE_NAME , ConstantsData.PACKAGE_NAME + ".DroidFish"); intent.putExtra("gms", 1); startActivity(intent); } }); multiplayer.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motion) { switch ( motion.getAction() ) { case MotionEvent.ACTION_DOWN: view.setBackgroundResource(R.drawable.button_play_down); view.startAnimation(buttonUpDownAnimate(true)); break; case MotionEvent.ACTION_UP: view.setBackgroundResource(R.drawable.button_play_new); view.startAnimation(buttonUpDownAnimate(false)); break; case MotionEvent.ACTION_CANCEL: view.setBackgroundResource(R.drawable.button_play_new); view.startAnimation(buttonUpDownAnimate(false)); break; } return false; } }); Button options = (Button) findViewById(R.id.about); options.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(MainActivity.this, Preferences.class); startActivity(i); } }); options.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motion) { switch ( motion.getAction() ) { case MotionEvent.ACTION_DOWN: view.setBackgroundResource(R.drawable.button_options_down); view.startAnimation(buttonUpDownAnimate(true)); break; case MotionEvent.ACTION_UP: view.setBackgroundResource(R.drawable.button_options_new); view.startAnimation(buttonUpDownAnimate(false)); break; case MotionEvent.ACTION_CANCEL: view.setBackgroundResource(R.drawable.button_options_new); view.startAnimation(buttonUpDownAnimate(false)); break; } return false; } }); // Initialize button animations play.startAnimation(stretch(0)); multiplayer.startAnimation(stretch(1)); options.startAnimation(stretch(2)); } private Animation buttonUpDownAnimate(boolean move) { Animation animation = null; float y0 = 0.0f; float y1 = ConstantsData.AnimTransDownBtn;; if (move) { animation = new TranslateAnimation(0.0f, 0.0f, y0, y1); } else { animation = new TranslateAnimation(0.0f, 0.0f, y0, -y1); } animation.setDuration(50); animation.setFillAfter(true); return animation; } @Override public void onStart() { super.onStart(); } @Override public void onBackPressed() { MainActivity.this.finish(); } synchronized private void exitMain() { } private final AnimationListener mTapPlayListener = new AnimationListener() { public void onAnimationEnd(Animation animation) { MainActivity.this.exitMain(); } public void onAnimationRepeat(Animation animation) { } public void onAnimationStart(Animation animation) { } }; // Show and Hide Animation Play Button private Animation showPlayAnim(boolean show) { float x0 = 0.0f; float x1 = -1.0f; Animation slideUp; if (show) { slideUp = new TranslateAnimation(Animation.RELATIVE_TO_SELF, x1, Animation.RELATIVE_TO_SELF, x0, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); slideUp.setInterpolator(new DecelerateInterpolator()); } else { slideUp = new TranslateAnimation(Animation.RELATIVE_TO_SELF, x0, Animation.RELATIVE_TO_SELF, x1, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); slideUp.setInterpolator(new AccelerateInterpolator()); } slideUp.setDuration(250); // make the element maintain its orientation even after the animation // finishes. slideUp.setFillAfter(true); slideUp.setAnimationListener(mTapPlayListener); return slideUp; } private AnimationSet stretch(int order) { final int SCALE_UP_DURATION = 400; final int SCALE_DOWN_DURATION = 200; final int SCALE_NORMAL_DURATION = 100; final float SCALE_START = 0.0f; final float SCALE_MAX = 1.20f; final float SCALE_MIN = 0.8f; final float SCALE_NORMAL = 1.0f; AnimationSet set = new AnimationSet(true); set.setInterpolator(new DecelerateInterpolator()); ScaleAnimation scaleUp = new ScaleAnimation(SCALE_START, SCALE_MAX, SCALE_START, SCALE_MAX, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleUp.setDuration(SCALE_UP_DURATION); ScaleAnimation scaleDown = new ScaleAnimation(SCALE_MAX, SCALE_MIN, SCALE_MAX, SCALE_MIN, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleDown.setDuration(SCALE_DOWN_DURATION); scaleDown.setStartOffset(SCALE_UP_DURATION); ScaleAnimation scaleNormal = new ScaleAnimation(SCALE_MIN, SCALE_NORMAL, SCALE_MIN, SCALE_NORMAL, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleNormal.setDuration(SCALE_NORMAL_DURATION); scaleNormal.setStartOffset(SCALE_UP_DURATION + SCALE_DOWN_DURATION); set.addAnimation(scaleUp); set.addAnimation(scaleDown); set.addAnimation(scaleNormal); set.setStartOffset(order * 200); return set; } }