package com.daasuu.FPSAnimator; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Paint; import android.support.design.widget.Snackbar; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.daasuu.FPSAnimator.util.UIUtil; import com.daasuu.library.DisplayObject; import com.daasuu.library.FPSSurfaceView; import com.daasuu.library.callback.AnimCallBack; import com.daasuu.library.drawer.BitmapDrawer; import com.daasuu.library.drawer.SpriteSheetDrawer; import com.daasuu.library.drawer.TextDrawer; import com.daasuu.library.easing.Ease; import com.daasuu.library.util.Util; public class FPSSurfaceViewSampleActivity extends AppCompatActivity { private FPSSurfaceView mFpsSurfaceView; public static void startActivity(Context context) { Intent intent = new Intent(context, FPSSurfaceViewSampleActivity.class); context.startActivity(intent); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fpssurface_view_sample); mFpsSurfaceView = (FPSSurfaceView) findViewById(R.id.fps_surface); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); DisplayObject bitmapDisplayA = new DisplayObject(); bitmapDisplayA .with(new BitmapDrawer(bitmap)) .tween() .toX(1600, UIUtil.getWindowWidth(this) - bitmap.getWidth(), Ease.BACK_IN_OUT) .waitTime(1000) .alpha(1000, 0f) .alpha(1000, 1f) .call(new AnimCallBack() { @Override public void call() { Snackbar.make(mFpsSurfaceView, "BitmapA animation finished!", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }) .end(); DisplayObject bitmapDisplayB = new DisplayObject(); bitmapDisplayB.with(new BitmapDrawer(bitmap) .dpSize(this) .scaleRegistration(Util.convertPixelsToDp(bitmap.getWidth(), this) / 2, Util.convertPixelsToDp(bitmap.getHeight(), this) / 2)) .tween() .tweenLoop(true) .transform(300, 400) .to(500, 300, 400, 0, 6f, 6f, 0, Ease.SINE_IN_OUT) .waitTime(300) .transform(300, 400, Util.convertAlphaFloatToInt(1f), 1f, 1f, 0) .waitTime(300) .end(); Paint paint = new Paint(); paint.setColor(ContextCompat.getColor(this, R.color.colorAccent)); paint.setTextSize(Util.convertDpToPixel(16, this)); String tweenTxt = "Better to use FPSTextureView."; DisplayObject tweenText = new DisplayObject(); tweenText.with(new TextDrawer(tweenTxt, paint) .rotateRegistration(paint.measureText(tweenTxt) / 2, paint.getTextSize() / 2)) .tween() .tweenLoop(true) .transform(0, 800) .waitTime(2000) .to(1000, UIUtil.getWindowWidth(this) - paint.measureText(tweenTxt), 800, 720f, Ease.SINE_OUT) .waitTime(2000) .to(1000, 0, 800, 0f, Ease.SINE_IN) .end(); float frameWidth = Util.convertDpToPixel(82.875f, this); float frameHeight = Util.convertDpToPixel(146.25f, this); Bitmap baseSpriteBitmapB = BitmapFactory.decodeResource(getResources(), R.drawable.spritesheet_grant); Bitmap spriteBitmapB = Bitmap.createScaledBitmap( baseSpriteBitmapB, (int) Util.convertDpToPixel(1024f, this), (int) Util.convertDpToPixel(1024f, this), false); SpriteSheetDrawer spriteSheetDrawer = new SpriteSheetDrawer(spriteBitmapB, frameWidth, frameHeight, 64, 12) .spriteLoopNum(6) .spriteAnimationEndCallBack(new AnimCallBack() { @Override public void call() { Snackbar.make(mFpsSurfaceView, "Sprite Apinmation Finish loop 6", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); DisplayObject tweenSprite = new DisplayObject(); tweenSprite.with(spriteSheetDrawer) .tween() .tweenLoop(true) .transform(-Util.convertDpToPixel(82.875f, this), UIUtil.getWindowHeight(this) / 2) .toX(3000, UIUtil.getWindowWidth(this)) .end(); final DisplayObject tweenParabolic = new DisplayObject(); tweenParabolic.with(new SpriteSheetDrawer(spriteBitmapB, frameWidth, frameHeight, 64, 12) .dpSize(this)) .parabolic() .transform(0, UIUtil.getWindowHeight(this) / 2) .initialVelocityY(-30) .reboundRight(false) .rightHitCallback(new AnimCallBack() { @Override public void call() { mFpsSurfaceView.removeChild(tweenParabolic); } }) .end(); mFpsSurfaceView .addChild(tweenParabolic) .addChild(tweenSprite) .addChild(bitmapDisplayA) .addChild(bitmapDisplayB) .addChild(tweenText); } @Override protected void onResume() { super.onResume(); mFpsSurfaceView.tickStart(); } @Override protected void onStop() { super.onStop(); mFpsSurfaceView.tickStop(); } }