diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java index c5f65f5..2bc13ac 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationActivity.java @@ -3,16 +3,29 @@ import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; -import org.ntlab.acanthus_client.R; + public class AnimationActivity extends AppCompatActivity { + private AnimationCanvas animationCanvas; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_animation); - AnimationCanvas animation = new AnimationCanvas(this); - setContentView(animation); + animationCanvas = new AnimationCanvas(this); + setContentView(animationCanvas); } + + @Override + protected void onPause(){ + super.onPause(); + animationCanvas.onPouse(); + } + + @Override + protected void onResume(){ + super.onResume(); + animationCanvas.onResume(); + } + } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationCanvas.java b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationCanvas.java index 9241984..bfa5351 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationCanvas.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/animation/AnimationCanvas.java @@ -2,53 +2,82 @@ import android.content.Context; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.Paint; + import android.view.View; -import org.ntlab.acanthus_client.Acanthus; -import org.ntlab.acanthus_client.entities.Position; -import org.ntlab.acanthus_client.entities.Stroke; -import java.util.ArrayList; +import org.ntlab.acanthus_client.Acanthus; + +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import retrofit2.Retrofit; public class AnimationCanvas extends View { private Retrofit retrofit; private Acanthus acanthus; - private AnimationViewModel animation = new AnimationViewModel(); + private AnimationViewModel animationViewModel = new AnimationViewModel(); private Paint paint = new Paint(); + + private ScheduledExecutorService ses = null; + + private int pageNo = 0; + + + private final Runnable task = new Runnable(){ + @Override + public void run(){ + pageNo++; + postInvalidate(); + } + }; + public AnimationCanvas(Context context) { super(context); } -/* - @Override - protected void onDraw(Canvas canvas) { - super.onDraw(canvas); - Stroke stroke = retrofit.create(Stroke.class); - paint.setStrokeWidth(stroke.getThickness()); - paint.setColor(stroke.getColor()); - ArrayList pts = stroke.getPositions(); - //canvas.drawLines(pts, paint); - } -*/ + + /* + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + Stroke stroke = retrofit.create(Stroke.class); + paint.setStrokeWidth(stroke.getThickness()); + paint.setColor(stroke.getColor()); + ArrayList pts = stroke.getPositions(); + //canvas.drawLines(pts, paint); + } + */ //ダミーです。 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); - //canvas.drawRect(100, 100, 200, 300, paint); - //canvas.drawRect(300, 200, 400, 400, paint); - //canvas.drawRect(500, 300, 600, 500, paint); - + canvas.drawRect(100, 100, 200, 300, paint); + canvas.drawRect(300, 200, 400, 400, paint); + canvas.drawRect(500, 100 + pageNo, 600, 300 + pageNo, paint); +/* //Stroke stroke = retrofit.create(Stroke.class); paint.setStrokeWidth(20); paint.setColor(Color.RED); float pts[] = {100, 1000, 500, 100, 500, 100, 900, 1000, 900, 1000, 250, 450, 250, 450, 800, 450}; canvas.drawLines(pts, paint); +*/ + } + public void onResume(){ + //タイマーの作成 + ses = Executors.newSingleThreadScheduledExecutor(); + //タイマーを100msごとにRunnableの処理を実行 + ses.scheduleAtFixedRate(task, 0L, 100L, TimeUnit.MILLISECONDS); + } + + public void onPouse(){ + //タイマーを停止する + ses.shutdown(); + ses = null; } } diff --git a/app/src/main/res/layout/activity_animation.xml b/app/src/main/res/layout/activity_animation.xml index 86095c2..e9aedc5 100644 --- a/app/src/main/res/layout/activity_animation.xml +++ b/app/src/main/res/layout/activity_animation.xml @@ -6,4 +6,13 @@ android:layout_height="match_parent" tools:context=".views.animation.AnimationActivity"> + \ No newline at end of file