diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ded0f7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# Intellij +*.iml +.idea + +# Keystore files +*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 7379d9d..402b437 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,6 @@ apply plugin: 'com.android.application' +apply plugin: 'com.android.application' +apply plugin: 'com.jakewharton.hugo' android { compileSdkVersion 25 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0d35da9..c62186d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,20 +9,28 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - + + - - - - + + + + \ No newline at end of file diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/CodeActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/CodeActivity.java deleted file mode 100644 index 59b42d2..0000000 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/CodeActivity.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.learnandroid.superpoohh.ballanimation; - -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; - -import io.github.kbiakov.codeview.CodeView; - - -public class CodeActivity extends AppCompatActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_code); - - CodeView codeView = (CodeView) findViewById(R.id.code_view); - codeView.setCode(getString(R.string.listing_position_spring)); - } -} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/ListActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/ListActivity.java index eb316d0..390a30d 100644 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/ListActivity.java +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/ListActivity.java @@ -1,43 +1,52 @@ package com.learnandroid.superpoohh.ballanimation; import android.content.Intent; -import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.view.Window; import com.learnandroid.superpoohh.ballanimation.adapter.AnimationAdapter; -import com.learnandroid.superpoohh.ballanimation.animations.springforce.positionSpring.PositionSpringAnimationActivity; -import com.learnandroid.superpoohh.ballanimation.animations.springforce.rotationSpringAnimation.RotationSpringAnimationActivity; -import com.learnandroid.superpoohh.ballanimation.animations.springforce.scaleSpringAnimation.ScaleSpringAnimationActivity; +import com.learnandroid.superpoohh.ballanimation.animations.springforce.position.PositionSpringAnimationActivity; +import com.learnandroid.superpoohh.ballanimation.animations.springforce.rotation.RotationSpringAnimationActivity; +import com.learnandroid.superpoohh.ballanimation.animations.springforce.scale.ScaleSpringAnimationActivity; import com.learnandroid.superpoohh.ballanimation.model.AnimationItem; -import java.util.ArrayList; + +import java.util.Arrays; import java.util.List; -public class ListActivity extends AppCompatActivity { +public class ListActivity extends AppCompatActivity implements AnimationAdapter.AnimationItemClickListener { + private RecyclerView recyclerView; + private AnimationAdapter animationAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_list); - RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list); - recyclerView.setLayoutManager(new android.support.v7.widget.LinearLayoutManager(this)); - - List items = new ArrayList<>(); - - items.add(new AnimationItem(getString(R.string.position), - new Intent(this, PositionSpringAnimationActivity.class))); - - - items.add(new AnimationItem(getString(R.string.rotation), - new Intent(this, RotationSpringAnimationActivity.class))); - - items.add(new AnimationItem(getString(R.string.scale), - new Intent(this, ScaleSpringAnimationActivity.class))); - - recyclerView.setAdapter(new AnimationAdapter(items, this)); + recyclerView = (RecyclerView) findViewById(R.id.list); + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + animationAdapter = new AnimationAdapter(createAnimationItemList()); + animationAdapter.setAnimationClickListener(this); + recyclerView.setAdapter(animationAdapter); + } + @Override + public void onAnimationItemClick(AnimationItem item) { + startActivity(item.getIntent()); + } + private List createAnimationItemList() { + return Arrays.asList( + new AnimationItem(getString(R.string.position), "position animation", + new Intent(this, PositionSpringAnimationActivity.class)), + new AnimationItem(getString(R.string.rotation), "Rotation animation", + new Intent(this, RotationSpringAnimationActivity.class)), + new AnimationItem(getString(R.string.scale), "scale animation", + new Intent(this, ScaleSpringAnimationActivity.class)) + ); } } diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/adapter/AnimationAdapter.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/adapter/AnimationAdapter.java index d7621ae..c190ff6 100644 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/adapter/AnimationAdapter.java +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/adapter/AnimationAdapter.java @@ -1,12 +1,12 @@ package com.learnandroid.superpoohh.ballanimation.adapter; -import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import com.learnandroid.superpoohh.ballanimation.R; import com.learnandroid.superpoohh.ballanimation.model.AnimationItem; import java.util.List; @@ -17,25 +17,26 @@ public class AnimationAdapter extends RecyclerView.Adapter { - private final List mItems; - private final Context mContext; + private List mItems; + private AnimationItemClickListener listener; - public AnimationAdapter(List mItems, Context mContext) { + public AnimationAdapter(List mItems) { this.mItems = mItems; - this.mContext = mContext; } @Override public AnimationHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) - .inflate(android.R.layout.simple_list_item_1, parent, false); + .inflate(R.layout.menu_item, parent, false); return new AnimationHolder(view); } @Override public void onBindViewHolder(AnimationHolder holder, int position) { - holder.mTitle.setText(mItems.get(position).getTitle()); - + AnimationItem item = mItems.get(position); + holder.setTitle(item.getTitle()); + holder.setDescription(item.getDescription()); + holder.setupItemViewClickListener(); } @Override @@ -43,25 +44,40 @@ public int getItemCount() { return mItems == null ? 0 : mItems.size(); } + public void setAnimationClickListener(AnimationItemClickListener listener) { + this.listener = listener; + } + public interface AnimationItemClickListener { + void onAnimationItemClick(AnimationItem item); + } - private TextView mTitle; - - class AnimationHolder extends android.support.v7.widget.RecyclerView.ViewHolder { - public final TextView mTitle; + class AnimationHolder extends android.support.v7.widget.RecyclerView.ViewHolder { + private TextView tvTitle, tvDescription; - public AnimationHolder(android.view.View itemView) { - super(itemView); - mTitle = (TextView) itemView.findViewById(android.R.id.text1); - mTitle.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mContext.startActivity(mItems.get(getAdapterPosition()).getIntent()); - } - }); - } + public AnimationHolder(View itemView) { + super(itemView); + tvTitle = (TextView) itemView.findViewById(R.id.tv_name); + tvDescription = (TextView) itemView.findViewById(R.id.tv_description); } + public void setTitle(String title) { + tvTitle.setText(title); + } + public void setDescription(String description) { + tvDescription.setText(description); + } + public void setupItemViewClickListener() { + itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.onAnimationItemClick(mItems.get(getAdapterPosition())); + } + } + }); + } + } } diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/positionSpring/PositionSpringAnimation.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/position/PositionSpringAnimation.java similarity index 88% rename from app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/positionSpring/PositionSpringAnimation.java rename to app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/position/PositionSpringAnimation.java index 3096576..7f99445 100644 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/positionSpring/PositionSpringAnimation.java +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/position/PositionSpringAnimation.java @@ -1,15 +1,13 @@ -package com.learnandroid.superpoohh.ballanimation.animations.springforce.positionSpring; +package com.learnandroid.superpoohh.ballanimation.animations.springforce.position; import android.support.animation.SpringAnimation; -import android.support.animation.SpringForce; import android.view.MotionEvent; import android.view.View; import android.view.ViewTreeObserver; import com.learnandroid.superpoohh.ballanimation.animations.SpringAnimationUtil; -import static com.learnandroid.superpoohh.ballanimation.animations.springforce.positionSpring.PositionSpringAnimationActivity.dampingValue; -import static com.learnandroid.superpoohh.ballanimation.animations.springforce.positionSpring.PositionSpringAnimationActivity.stiffnessValue; + /** * Created by superpoohh on 6/13/2017. @@ -18,12 +16,21 @@ public class PositionSpringAnimation { private View animatedView; + private float dampingValue = 0.1f, stiffnessValue = 100f; private SpringAnimation xAnimation; private SpringAnimation yAnimation; private float dX; private float dY; + public void setDampingValue(float dampingValue) { + this.dampingValue = dampingValue; + } + + public void setStiffnessValue(float stiffnessValue) { + this.stiffnessValue = stiffnessValue; + } + public PositionSpringAnimation(final View animatedView) { if (animatedView != null) { this.animatedView = animatedView; diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/position/PositionSpringAnimationActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/position/PositionSpringAnimationActivity.java new file mode 100644 index 0000000..36170cb --- /dev/null +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/position/PositionSpringAnimationActivity.java @@ -0,0 +1,153 @@ +package com.learnandroid.superpoohh.ballanimation.animations.springforce.position; + +import android.animation.ObjectAnimator; +import android.os.Handler; +import android.support.animation.DynamicAnimation; +import android.support.animation.SpringAnimation; +import android.support.animation.SpringForce; +import android.support.design.widget.BottomSheetBehavior; +import android.support.design.widget.BottomSheetDialogFragment; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.learnandroid.superpoohh.ballanimation.R; + +import io.github.kbiakov.codeview.CodeView; + +import static com.learnandroid.superpoohh.ballanimation.animations.SpringAnimationUtil.createSpringAnimation; + +public class PositionSpringAnimationActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener, View.OnClickListener { + + private ImageView animateView; + private SeekBar sbDamping, sbStiffness; + private BottomSheetDialogFragment dialogBottomSheet; + private TextView tvDamping, tvStiffness, tvDescription; + private Button btnShowCode; + private View layoutBottom; + private CodeView codevRotation; + private BottomSheetBehavior bottomSheetBehavior; + private PositionSpringAnimation positionSpringAnimation; + + private SpringAnimation springAnimation, positionX, positionY; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_position_spring_animation); + + getSupportActionBar().setDisplayShowHomeEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + initInstance(); + demoAnimation(); + } + + private void demoAnimation() { + Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { +// positionX = createSpringAnimation(animateView, +// SpringAnimation.TRANSLATION_X, 150f, +// 500, 0.2f); + positionY = createSpringAnimation(animateView, + SpringAnimation.TRANSLATION_Y, 200f, + 100, 0.3f); +// positionX.start(); + positionY.start(); + } + }, 1500); + + } + + + private void initInstance() { + + animateView = (ImageView) findViewById(R.id.animateView); + + sbDamping = (SeekBar) findViewById(R.id.sb_damping); + sbStiffness = (SeekBar) findViewById(R.id.sb_stiffness); + btnShowCode = (Button) findViewById(R.id.dialogBottom); + btnShowCode.setOnClickListener(this); + + layoutBottom = findViewById(R.id.btms_code); + + codevRotation = (CodeView) findViewById(R.id.code_view); + codevRotation.setCode(getString(R.string.listing_position_spring)); + bottomSheetBehavior = BottomSheetBehavior.from(layoutBottom); + + tvDamping = (TextView) findViewById(R.id.tv_Dimping); + tvStiffness = (TextView) findViewById(R.id.tv_stiffness); + tvDescription = (TextView) findViewById(R.id.tv_description); + tvDescription.setText("Position Animation code"); + + sbDamping.setOnSeekBarChangeListener(this); + sbStiffness.setOnSeekBarChangeListener(this); + + + animateView.setImageResource(R.drawable.pokeball); + positionSpringAnimation = new PositionSpringAnimation(animateView); + + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + if (seekBar == sbDamping) { + float dampingValue; + if (progress != 0) { + dampingValue = (float) (progress / 10.0); + tvDamping.setText(String.valueOf(dampingValue)); + } else { + dampingValue = 0.05f; + tvDamping.setText("0"); + } + positionSpringAnimation.setDampingValue(dampingValue); + } else if (seekBar == sbStiffness) { + float stiffnessValue; + stiffnessValue = progress; + positionSpringAnimation.setStiffnessValue(stiffnessValue); + tvStiffness.setText(String.valueOf(stiffnessValue)); + } + + + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + this.finish(); + } + return super.onOptionsItemSelected(item); + } + + + @Override + public void onClick(View v) { + if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) { + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + } else { + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + } + } + + +} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/positionSpring/PositionSpringAnimationActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/positionSpring/PositionSpringAnimationActivity.java deleted file mode 100644 index 45dbc88..0000000 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/positionSpring/PositionSpringAnimationActivity.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.learnandroid.superpoohh.ballanimation.animations.springforce.positionSpring; - -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.widget.ImageView; -import android.widget.SeekBar; -import android.widget.TextView; -import android.widget.Toast; - -import com.learnandroid.superpoohh.ballanimation.R; - -import io.github.kbiakov.codeview.CodeView; - -public class PositionSpringAnimationActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener { - - private ImageView animateView; - private SeekBar sbDamping, sbStiffness; - private float damping, stiffness; - private TextView tvDimping, tvStiffness, tvDescription; - - public static float dampingValue = 0.1f, stiffnessValue = 100; - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_position_spring_animation); - - innitInstance(); - } - - private void innitInstance() { - animateView = (ImageView) findViewById(R.id.animateView); - - sbDamping = (SeekBar) findViewById(R.id.sb_damping); - sbStiffness = (SeekBar) findViewById(R.id.sb_stiffness); - - tvDimping = (TextView) findViewById(R.id.tv_Dimping); - tvStiffness = (TextView) findViewById(R.id.tv_stiffness); - tvDescription = (TextView) findViewById(R.id.tv_description); - tvDescription.setText(R.string.description_position_spring); - - sbDamping.setOnSeekBarChangeListener(this); - sbStiffness.setOnSeekBarChangeListener(this); - - CodeView codeView = (CodeView) findViewById(R.id.code_view); - codeView.setCode(getString(R.string.listing_position_spring)); - - animateView.setImageResource(R.drawable.pokeball); - PositionSpringAnimation positionSpringAnimation = - new PositionSpringAnimation(animateView); - } - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - if (seekBar == sbDamping) { - int progressValue = progress; - if(progressValue != 0){ - dampingValue = (float) (progress / 10.0); - tvDimping.setText(String.valueOf(dampingValue)); - }else { - dampingValue = 0.05f; - tvDimping.setText("0"); - } - } else if (seekBar == sbStiffness) { - stiffnessValue = progress; - tvStiffness.setText(String.valueOf(stiffnessValue)); - } - - - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - - } - -} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotationSpringAnimation/RotationSpringAnimation.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotation/RotationSpringAnimation.java similarity index 89% rename from app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotationSpringAnimation/RotationSpringAnimation.java rename to app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotation/RotationSpringAnimation.java index dd32d11..cc003d8 100644 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotationSpringAnimation/RotationSpringAnimation.java +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotation/RotationSpringAnimation.java @@ -1,8 +1,7 @@ -package com.learnandroid.superpoohh.ballanimation.animations.springforce.rotationSpringAnimation; +package com.learnandroid.superpoohh.ballanimation.animations.springforce.rotation; import android.support.animation.DynamicAnimation; import android.support.animation.SpringAnimation; -import android.support.animation.SpringForce; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -11,8 +10,6 @@ import java.util.Locale; import static com.learnandroid.superpoohh.ballanimation.animations.SpringAnimationUtil.createSpringAnimation; -import static com.learnandroid.superpoohh.ballanimation.animations.springforce.rotationSpringAnimation.RotationSpringAnimationActivity.dampingValue; -import static com.learnandroid.superpoohh.ballanimation.animations.springforce.rotationSpringAnimation.RotationSpringAnimationActivity.stiffnessValue; /** * Created by superpoohh on 6/14/2017. @@ -22,12 +19,21 @@ public class RotationSpringAnimation { private static final float INITIAL_ROTATION = 0f; + private float dampingValue = 0.1f, stiffnessValue = 100f; private SpringAnimation rotationAnimation; private float previousRotation; private float currentRotation ; private View animateView; private TextView infoView; + public void setDampingValue(float dampingValue) { + this.dampingValue = dampingValue; + } + + public void setStiffnessValue(float stiffnessValue) { + this.stiffnessValue = stiffnessValue; + } + public RotationSpringAnimation(ImageView animateView, TextView infoView) { // create a rotation SpringAnimation rotationAnimation = createSpringAnimation(animateView, diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotation/RotationSpringAnimationActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotation/RotationSpringAnimationActivity.java new file mode 100644 index 0000000..e1f848e --- /dev/null +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotation/RotationSpringAnimationActivity.java @@ -0,0 +1,149 @@ +package com.learnandroid.superpoohh.ballanimation.animations.springforce.rotation; + +import android.os.Handler; +import android.support.animation.SpringAnimation; +import android.support.design.widget.BottomSheetBehavior; +import android.support.design.widget.BottomSheetDialogFragment; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.learnandroid.superpoohh.ballanimation.R; + +import io.github.kbiakov.codeview.CodeView; + +import static com.learnandroid.superpoohh.ballanimation.animations.SpringAnimationUtil.createSpringAnimation; + + +public class RotationSpringAnimationActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener, View.OnClickListener { + + private ImageView ivAnimateRotation; + private SeekBar sbDamping, sbStiffness; + private TextView tvDimping, tvStiffness, tvInformation, tvDescription; + private BottomSheetDialogFragment dialogBottomSheet; + private Button btnShowCode; + private View layoutBottom; + private SpringAnimation rotationAnimation; + private CodeView codevRotation; + + private BottomSheetBehavior bottomSheetBehavior; + RotationSpringAnimation rotationSpringAnimation; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_rotation_spring_animation); + + getSupportActionBar().setDisplayShowHomeEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + initInstances(); + ivAnimateRotation.setImageResource(R.drawable.pokeball); + rotationSpringAnimation = new RotationSpringAnimation(ivAnimateRotation, tvInformation); + + demoAnimation(); + + } + + private void demoAnimation() { + Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + rotationAnimation = createSpringAnimation(ivAnimateRotation, + SpringAnimation.ROTATION, 360f, + 200, 0.4f); + rotationAnimation.start(); + } + }, 2000); + } + + + + + private void initInstances() { + ivAnimateRotation = (ImageView) findViewById(R.id.animateView); + tvInformation = (TextView) findViewById(R.id.information); + + sbDamping = (SeekBar) findViewById(R.id.sb_damping); + sbStiffness = (SeekBar) findViewById(R.id.sb_stiffness); + + btnShowCode = (Button) findViewById(R.id.dialogBottom); + btnShowCode.setOnClickListener(this); + + tvDimping = (TextView) findViewById(R.id.tv_Dimping); + tvStiffness = (TextView) findViewById(R.id.tv_stiffness); + tvDescription = (TextView) findViewById(R.id.tv_description); + tvDescription.setText("Rolation Animation code"); + + sbDamping.setOnSeekBarChangeListener(this); + sbStiffness.setOnSeekBarChangeListener(this); + layoutBottom = findViewById(R.id.btms_code); + + codevRotation = (CodeView) findViewById(R.id.code_view); + codevRotation.setCode(getString(R.string.listing_rotation_spring)); + bottomSheetBehavior = BottomSheetBehavior.from(layoutBottom); + + } + + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + if (seekBar == sbDamping) { + float dampingValue; + if (progress != 0) { + dampingValue = (float) (progress / 10.0); + tvDimping.setText(String.valueOf(dampingValue)); + } else { + dampingValue = 0.05f; + tvDimping.setText("0"); + } + rotationSpringAnimation.setDampingValue(dampingValue); + } else if (seekBar == sbStiffness) { + float stiffnessValue; + stiffnessValue = progress; + rotationSpringAnimation.setStiffnessValue(stiffnessValue); + tvStiffness.setText(String.valueOf(stiffnessValue)); + } + + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + this.finish(); + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onClick(View v) { + if (v == btnShowCode) { + if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) { + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + } else { + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + } + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotationSpringAnimation/RotationSpringAnimationActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotationSpringAnimation/RotationSpringAnimationActivity.java deleted file mode 100644 index 8f75aaf..0000000 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/rotationSpringAnimation/RotationSpringAnimationActivity.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.learnandroid.superpoohh.ballanimation.animations.springforce.rotationSpringAnimation; - -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.widget.ImageView; -import android.widget.SeekBar; -import android.widget.TextView; - -import com.learnandroid.superpoohh.ballanimation.R; -import com.learnandroid.superpoohh.ballanimation.animations.springforce.positionSpring.PositionSpringAnimation; - -import org.w3c.dom.Text; - -import io.github.kbiakov.codeview.CodeView; - -public class RotationSpringAnimationActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener { - - private ImageView animateView; - private SeekBar sbDamping, sbStiffness; - private float damping, stiffness; - private TextView tvDimping, tvStiffness, infor, tvDescription; - - public static float dampingValue = 0.1f, stiffnessValue = 100; - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_rotation_spring_animation); - - innitInstances(); - - animateView.setImageResource(R.drawable.pokeball); - RotationSpringAnimation rotationAnimation = - new RotationSpringAnimation(animateView, infor); - } - - private void innitInstances() { - animateView = (ImageView) findViewById(R.id.animateView); - infor = (TextView) findViewById(R.id.information); - - sbDamping = (SeekBar) findViewById(R.id.sb_damping); - sbStiffness = (SeekBar) findViewById(R.id.sb_stiffness); - - - tvDimping = (TextView) findViewById(R.id.tv_Dimping); - tvStiffness = (TextView) findViewById(R.id.tv_stiffness); - tvDescription = (TextView) findViewById(R.id.tv_description); - tvDescription.setText(R.string.description_rotation_spring); - - - CodeView codeView = (CodeView) findViewById(R.id.code_view); - codeView.setCode(getString(R.string.listing_rotation_spring)); - - sbDamping.setOnSeekBarChangeListener(this); - sbStiffness.setOnSeekBarChangeListener(this); - - } - - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - if (seekBar == sbDamping) { - int progressValue = progress; - if (progressValue != 0) { - dampingValue = (float) (progress / 10.0); - tvDimping.setText(String.valueOf(dampingValue)); - } else { - dampingValue = 0.05f; - tvDimping.setText("0"); - } - } else if (seekBar == sbStiffness) { - stiffnessValue = progress; - tvStiffness.setText(String.valueOf(stiffnessValue)); - } - - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scaleSpringAnimation/ScaleSpringAnimation.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scale/ScaleSpringAnimation.java similarity index 88% rename from app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scaleSpringAnimation/ScaleSpringAnimation.java rename to app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scale/ScaleSpringAnimation.java index 1a3ad00..e52ddea 100644 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scaleSpringAnimation/ScaleSpringAnimation.java +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scale/ScaleSpringAnimation.java @@ -1,4 +1,4 @@ -package com.learnandroid.superpoohh.ballanimation.animations.springforce.scaleSpringAnimation; +package com.learnandroid.superpoohh.ballanimation.animations.springforce.scale; import android.support.animation.DynamicAnimation; import android.support.animation.SpringAnimation; @@ -12,8 +12,7 @@ import java.util.Locale; import static com.learnandroid.superpoohh.ballanimation.animations.SpringAnimationUtil.createSpringAnimation; -import static com.learnandroid.superpoohh.ballanimation.animations.springforce.scaleSpringAnimation.ScaleSpringAnimationActivity.dampingValue; -import static com.learnandroid.superpoohh.ballanimation.animations.springforce.scaleSpringAnimation.ScaleSpringAnimationActivity.stiffnessValue; + /** * Created by superpoohh on 6/15/2017. @@ -23,6 +22,7 @@ public class ScaleSpringAnimation { private static final float INITIAL_SCALE = 1f; private float scaleFactor = 1f; + private float dampingValue = 0.1f, stiffnessValue = 100f; private SpringAnimation scaleXAnimation ; private SpringAnimation scaleYAnimation; private ScaleGestureDetector scaleGestureDetector; @@ -30,12 +30,20 @@ public class ScaleSpringAnimation { private View animateView; private TextView infoView; + public void setDampingValue(float dampingValue) { + this.dampingValue = dampingValue; + } + + public void setStiffnessValue(float stiffnessValue) { + this.stiffnessValue = stiffnessValue; + } + public ScaleSpringAnimation(ImageView animateView, TextView infoView) { this.infoView = infoView; this.animateView = animateView; // create scaleX and scaleY animations scaleXAnimation = createSpringAnimation( animateView, SpringAnimation.SCALE_X, - INITIAL_SCALE, SpringForce.STIFFNESS_HIGH, SpringForce.DAMPING_RATIO_HIGH_BOUNCY); + INITIAL_SCALE, stiffnessValue, dampingValue); scaleYAnimation = createSpringAnimation( animateView, SpringAnimation.SCALE_Y, INITIAL_SCALE, stiffnessValue, dampingValue); updateInfoView(); diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scale/ScaleSpringAnimationActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scale/ScaleSpringAnimationActivity.java new file mode 100644 index 0000000..9f2acc7 --- /dev/null +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scale/ScaleSpringAnimationActivity.java @@ -0,0 +1,146 @@ +package com.learnandroid.superpoohh.ballanimation.animations.springforce.scale; + +import android.os.Handler; +import android.support.animation.SpringAnimation; +import android.support.design.widget.BottomSheetBehavior; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.SeekBar; +import android.widget.TextView; + +import com.learnandroid.superpoohh.ballanimation.R; + +import io.github.kbiakov.codeview.CodeView; + +import static com.learnandroid.superpoohh.ballanimation.animations.SpringAnimationUtil.createSpringAnimation; + +public class ScaleSpringAnimationActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener, View.OnClickListener { + + private ImageView animateView; + private SeekBar sbDamping, sbStiffness; + private TextView tvDimping, tvStiffness, infor, tvDescription; + SpringAnimation scaleXAnimation; + SpringAnimation scaleYAnimation; + ScaleSpringAnimation scaleSpringAnimation; + private View layoutBottom; + private CodeView codevRotation; + private Button btnShowCode; + private BottomSheetBehavior bottomSheetBehavior; + private float dampingRadio = 0.1f; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_scale_spring_animation); + + getSupportActionBar().setDisplayShowHomeEnabled(true); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + innitInstances(); + demoAnimation(); + animateView.setImageResource(R.drawable.pokeball); + scaleSpringAnimation = + new ScaleSpringAnimation(animateView, infor); + + } + + private void demoAnimation() { + Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + // create scaleX and scaleY animations + scaleXAnimation = createSpringAnimation(animateView, SpringAnimation.SCALE_X, + 2f, 200f, 0.1f); + scaleYAnimation = createSpringAnimation(animateView, SpringAnimation.SCALE_Y, + 2f, 1000f, 0.1f); + scaleXAnimation.start(); + scaleYAnimation.start(); + } + }, 1500); + } + + private void innitInstances() { + + animateView = (ImageView) findViewById(R.id.animateView); + infor = (TextView) findViewById(R.id.information); + + sbDamping = (SeekBar) findViewById(R.id.sb_damping); + sbStiffness = (SeekBar) findViewById(R.id.sb_stiffness); + + btnShowCode = (Button) findViewById(R.id.dialogBottom); + btnShowCode.setOnClickListener(this); + + + tvDimping = (TextView) findViewById(R.id.tv_Dimping); + tvStiffness = (TextView) findViewById(R.id.tv_stiffness); + tvDescription = (TextView) findViewById(R.id.tv_description); + tvDescription.setText("Scale Animation code"); + + sbDamping.setOnSeekBarChangeListener(this); + sbStiffness.setOnSeekBarChangeListener(this); + layoutBottom = findViewById(R.id.btms_code); + + codevRotation = (CodeView) findViewById(R.id.code_view); + codevRotation.setCode(getString(R.string.listing_scale_spring)); + bottomSheetBehavior = BottomSheetBehavior.from(layoutBottom); + + } + + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + if (seekBar == sbDamping) { + float dampingValue; + if (progress != 0) { + dampingValue = (float) (progress / 10.0); + tvDimping.setText(String.valueOf(dampingValue)); + } else { + dampingValue = 0.05f; + tvDimping.setText("0"); + } + scaleSpringAnimation.setDampingValue(dampingValue); + } else if (seekBar == sbStiffness) { + float stiffnessValue; + stiffnessValue = progress; + scaleSpringAnimation.setStiffnessValue(stiffnessValue); + tvStiffness.setText(String.valueOf(stiffnessValue)); + } + + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if (id == android.R.id.home) { + this.finish(); + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onClick(View v) { + if (v == btnShowCode) { + if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) { + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + } else { + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + } + } + + } +} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scaleSpringAnimation/ScaleSpringAnimationActivity.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scaleSpringAnimation/ScaleSpringAnimationActivity.java deleted file mode 100644 index cd95ee4..0000000 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/animations/springforce/scaleSpringAnimation/ScaleSpringAnimationActivity.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.learnandroid.superpoohh.ballanimation.animations.springforce.scaleSpringAnimation; - -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.widget.ImageView; -import android.widget.SeekBar; -import android.widget.TextView; - -import com.learnandroid.superpoohh.ballanimation.R; -import com.learnandroid.superpoohh.ballanimation.animations.springforce.rotationSpringAnimation.RotationSpringAnimation; - -import io.github.kbiakov.codeview.CodeView; - -public class ScaleSpringAnimationActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener { - - private ImageView animateView; - private SeekBar sbDamping, sbStiffness; - private float damping, stiffness; - private TextView tvDimping, tvStiffness, infor, tvDescription; - - public static float dampingValue = 0.1f, stiffnessValue = 100; - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_scale_spring_animation); - - innitInstances(); - - animateView.setImageResource(R.drawable.pokeball); - ScaleSpringAnimation scaleSpringAnimation = - new ScaleSpringAnimation(animateView, infor); - - } - - private void innitInstances() { - - animateView = (ImageView) findViewById(R.id.animateView); - infor = (TextView) findViewById(R.id.information); - - sbDamping = (SeekBar) findViewById(R.id.sb_damping); - sbStiffness = (SeekBar) findViewById(R.id.sb_stiffness); - - CodeView codeView = (CodeView) findViewById(R.id.code_view); - codeView.setCode(getString(R.string.listing_scale_spring)); - - tvDimping = (TextView) findViewById(R.id.tv_Dimping); - tvStiffness = (TextView) findViewById(R.id.tv_stiffness); - tvDescription = (TextView) findViewById(R.id.tv_description); - tvDescription.setText(R.string.description_scales_spring); - - sbDamping.setOnSeekBarChangeListener(this); - sbStiffness.setOnSeekBarChangeListener(this); - - } - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - if (seekBar == sbDamping) { - int progressValue = progress; - if(progressValue != 0){ - dampingValue = (float) (progress / 10.0); - tvDimping.setText(String.valueOf(dampingValue)); - }else { - dampingValue = 0.05f; - tvDimping.setText("0"); - } - } else if (seekBar == sbStiffness) { - stiffnessValue = progress; - tvStiffness.setText(String.valueOf(stiffnessValue)); - } - - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - - } -} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/PositionBottomSheetDialogFragment.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/PositionBottomSheetDialogFragment.java new file mode 100644 index 0000000..87601de --- /dev/null +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/PositionBottomSheetDialogFragment.java @@ -0,0 +1,73 @@ +package com.learnandroid.superpoohh.ballanimation.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.design.widget.BottomSheetDialogFragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.learnandroid.superpoohh.ballanimation.R; + + +import io.github.kbiakov.codeview.CodeView; +import io.github.kbiakov.codeview.classifier.CodeProcessor; + +/** + * Created by superpoohh on 6/16/2017. + */ + +public class PositionBottomSheetDialogFragment extends BottomSheetDialogFragment { + String mString; + CodeView codeView; + TextView tvDescription; + + public static PositionBottomSheetDialogFragment newInstance(String string) { + PositionBottomSheetDialogFragment fragment = new PositionBottomSheetDialogFragment(); + Bundle args = new Bundle(); + args.putString("string", string); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mString = getArguments().getString("string"); + + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.bottom_sheet_test, container, false); + CodeProcessor.init(getContext()); + + tvDescription = (TextView)v.findViewById(R.id.tv_description); + tvDescription.setText("position"); + codeView = (CodeView) v.findViewById(R.id.code_view1); + codeView.setCode(getString(R.string.listing_position_spring), "java"); + + + return v; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + //save state + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + if (savedInstanceState !=null){ + + //restore state + + } + } +} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/RotationBottomSheetDialogFragment.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/RotationBottomSheetDialogFragment.java new file mode 100644 index 0000000..2332246 --- /dev/null +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/RotationBottomSheetDialogFragment.java @@ -0,0 +1,68 @@ +package com.learnandroid.superpoohh.ballanimation.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.design.widget.BottomSheetDialogFragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.learnandroid.superpoohh.ballanimation.R; + +import io.github.kbiakov.codeview.CodeView; + +/** + * Created by superpoohh on 6/16/2017. + */ + +public class RotationBottomSheetDialogFragment extends BottomSheetDialogFragment { + String mString; + CodeView codeView; + TextView tvDescription; + + public static RotationBottomSheetDialogFragment newInstance(String string) { + RotationBottomSheetDialogFragment fragment = new RotationBottomSheetDialogFragment(); + Bundle args = new Bundle(); + args.putString("string", string); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mString = getArguments().getString("string"); + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.bottom_sheet_test, container, false); + tvDescription = (TextView)v.findViewById(R.id.tv_description); + tvDescription.setText("Rotation"); + codeView = (CodeView) v.findViewById(R.id.code_view1); + codeView.setCode(getString(R.string.listing_rotation_spring), "java"); + + + return v; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + //save state + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + if (savedInstanceState !=null){ + + //restore state + + } + } +} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/ScaleBottomSheetDialogFragment.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/ScaleBottomSheetDialogFragment.java new file mode 100644 index 0000000..271b314 --- /dev/null +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/fragment/ScaleBottomSheetDialogFragment.java @@ -0,0 +1,68 @@ +package com.learnandroid.superpoohh.ballanimation.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.design.widget.BottomSheetDialogFragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.learnandroid.superpoohh.ballanimation.R; + +import io.github.kbiakov.codeview.CodeView; + +/** + * Created by superpoohh on 6/16/2017. + */ + +public class ScaleBottomSheetDialogFragment extends BottomSheetDialogFragment { + String mString; + CodeView codeView; + TextView tvDescription; + + public static ScaleBottomSheetDialogFragment newInstance(String string) { + ScaleBottomSheetDialogFragment fragment = new ScaleBottomSheetDialogFragment(); + Bundle args = new Bundle(); + args.putString("string", string); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mString = getArguments().getString("string"); + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.bottom_sheet_test, container, false); + tvDescription = (TextView) v.findViewById(R.id.tv_description); + tvDescription.setText("Scale"); + codeView = (CodeView) v.findViewById(R.id.code_view1); + codeView.setCode(getString(R.string.listing_scale_spring), "java"); + + + return v; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + //save state + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + if (savedInstanceState !=null){ + + //restore state + + } + } +} diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/model/AnimationItem.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/model/AnimationItem.java index 1f3e138..8063bb0 100644 --- a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/model/AnimationItem.java +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/model/AnimationItem.java @@ -7,12 +7,13 @@ */ public class AnimationItem { - private String mTitle; - private Intent mIntent; + private String mTitle, mDescription; + private Intent mIntent; - public AnimationItem(String title, android.content.Intent intent) { + public AnimationItem(String title, String Description,Intent intent) { mTitle = title; mIntent = intent; + mDescription = Description; } public android.content.Intent getIntent() { @@ -22,4 +23,8 @@ public android.content.Intent getIntent() { public String getTitle() { return mTitle; } + + public String getDescription() { + return mDescription; + } } diff --git a/app/src/main/java/com/learnandroid/superpoohh/ballanimation/view/SplashScreen.java b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/view/SplashScreen.java new file mode 100644 index 0000000..a9ff69a --- /dev/null +++ b/app/src/main/java/com/learnandroid/superpoohh/ballanimation/view/SplashScreen.java @@ -0,0 +1,51 @@ +package com.learnandroid.superpoohh.ballanimation.view; + +import android.content.Intent; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.Window; + +import com.learnandroid.superpoohh.ballanimation.ListActivity; +import com.learnandroid.superpoohh.ballanimation.R; + + + +public class SplashScreen extends AppCompatActivity { + private Handler handler; + private Runnable runnable; + long delay_time; + long time = 1000L; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.activity_splash_screen); + + handler = new Handler(); + + runnable = new Runnable() { + public void run() { + Intent intent = new Intent(SplashScreen.this, ListActivity.class); + startActivity(intent); + finish(); + } + }; + } + + + public void onResume() { + super.onResume(); + delay_time = time; + handler.postDelayed(runnable, delay_time); + time = System.currentTimeMillis(); + } + + public void onStop() { + super.onStop(); + handler.removeCallbacks(runnable); + time = delay_time - (System.currentTimeMillis() - time); + } + +} diff --git a/app/src/main/res/drawable-xhdpi/logo_icon.png b/app/src/main/res/drawable-xhdpi/logo_icon.png new file mode 100644 index 0000000..1b08fa1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/logo_icon.png differ diff --git a/app/src/main/res/drawable/bg_splash.png b/app/src/main/res/drawable/bg_splash.png new file mode 100644 index 0000000..fe6293a Binary files /dev/null and b/app/src/main/res/drawable/bg_splash.png differ diff --git a/app/src/main/res/drawable/button_effect.xml b/app/src/main/res/drawable/button_effect.xml new file mode 100644 index 0000000..0986ff2 --- /dev/null +++ b/app/src/main/res/drawable/button_effect.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/logo.png b/app/src/main/res/drawable/logo.png new file mode 100644 index 0000000..1b08fa1 Binary files /dev/null and b/app/src/main/res/drawable/logo.png differ diff --git a/app/src/main/res/layout/activity_code.xml b/app/src/main/res/layout/activity_code.xml deleted file mode 100644 index 3e60762..0000000 --- a/app/src/main/res/layout/activity_code.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_list.xml b/app/src/main/res/layout/activity_list.xml index 763e0d2..03cd0ba 100644 --- a/app/src/main/res/layout/activity_list.xml +++ b/app/src/main/res/layout/activity_list.xml @@ -9,11 +9,8 @@ - - - - + android:layout_height="match_parent" + /> diff --git a/app/src/main/res/layout/activity_position_spring_animation.xml b/app/src/main/res/layout/activity_position_spring_animation.xml index f61ff4c..28129d7 100644 --- a/app/src/main/res/layout/activity_position_spring_animation.xml +++ b/app/src/main/res/layout/activity_position_spring_animation.xml @@ -4,9 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".animations.springforce.positionSpring.PositionSpringAnimationActivity"> - - + tools:context=".animations.springforce.position.PositionSpringAnimationActivity"> + android:max="10" + android:progress="1" /> @@ -138,7 +136,7 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:max="1000" - android:progress="100"/> + android:progress="100" /> @@ -182,8 +180,7 @@ android:layout_centerInParent="true" android:ellipsize="end" android:text="100" - android:textSize="12sp" - /> + android:textSize="12sp" /> @@ -197,16 +194,23 @@ - - - - - - - - +