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 bc85a71..39a6088 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
@@ -5,6 +5,7 @@
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
+import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
@@ -20,48 +21,108 @@
private ActivityPaintBinding binding;
private View view;
+ //ボタン系
+ private boolean buttonView = true;
+ private Button buttonPlayback;
+ private Button buttonReset;
+ private Button buttonClose;
+ private Button buttonDetail;
+ private Button buttonSkip;
+ private Button buttonBack;
+
+
//animationCanvasの表示
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_animation);
-
animationCanvas = this.findViewById(R.id.animationMyCanvas);
+
//アニメーションの再生停止
- Button buttonPlayback = findViewById(R.id.button_playback);
+ buttonPlayback = findViewById(R.id.button_playback);
buttonPlayback.setOnClickListener(new View.OnClickListener(){
- @Override
public void onClick(View v) {
- animationCanvas.onClickPlayback();
+ if(animationCanvas.onClickPlayback() == 0){
+ buttonPlayback.setText("Play");
+ }
+ else {
+ buttonPlayback.setText("Stop");
+ }
}
});
//最初に戻す
- Button buttonReset = findViewById(R.id.button_reset);
+ buttonReset = findViewById(R.id.button_reset);
buttonReset.setOnClickListener(new View.OnClickListener(){
- @Override
public void onClick(View v) {
animationCanvas.resetAnimationPage();
}
});
+ //5秒スキップ
+ buttonSkip = findViewById(R.id.button_skip);
+ buttonSkip.setOnClickListener(new View.OnClickListener(){
+ public void onClick(View v) {
+ animationCanvas.setAnimationSkip(1);
+ }
+ });
+
+ //5秒巻き戻し
+ buttonBack = findViewById(R.id.button_back);
+ buttonBack.setOnClickListener(new View.OnClickListener(){
+ public void onClick(View v) {
+ animationCanvas.setAnimationSkip(-1);
+ }
+ });
+
+
//閉じる
- Button buttonClose = findViewById(R.id.button_close);
+ buttonClose = findViewById(R.id.button_close);
buttonClose.setOnClickListener(new View.OnClickListener(){
- @Override
public void onClick(View v) {
finish();
}
});
- Button buttonDetail = findViewById(R.id.button_detail);
+ //詳細画面へ移動
+ buttonDetail = findViewById(R.id.button_detail);
buttonDetail.setOnClickListener(new View.OnClickListener(){
- @Override
public void onClick(View v) {
Intent intent = new Intent(AnimationActivity.this, AnimationDetailActivity.class);
startActivity(intent);
}
});
-
}
+
+
+ //Activity内のボタンの表示/非表示
+ @Override
+ public boolean onTouchEvent(MotionEvent motionEvent) {
+ switch (motionEvent.getAction()){
+ case MotionEvent.ACTION_DOWN:
+ //画面タップで表示されてたら非表示にする。
+ if(buttonView) {
+ buttonReset.setVisibility(View.INVISIBLE);
+ buttonPlayback.setVisibility(View.INVISIBLE);
+ buttonDetail.setVisibility(View.INVISIBLE);
+ buttonClose.setVisibility(View.INVISIBLE);
+ buttonSkip.setVisibility(View.INVISIBLE);
+ buttonBack.setVisibility(View.INVISIBLE);
+
+ buttonView = false;
+ }
+ else {
+ buttonReset.setVisibility(View.VISIBLE);
+ buttonPlayback.setVisibility(View.VISIBLE);
+ buttonDetail.setVisibility(View.VISIBLE);
+ buttonClose.setVisibility(View.VISIBLE);
+ buttonSkip.setVisibility(View.VISIBLE);
+ buttonBack.setVisibility(View.VISIBLE);
+
+ buttonView = true;
+ }
+ }
+ return false;
+ }
+
}
\ 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 73aa4c4..d3ba066 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
@@ -37,26 +37,29 @@
super.onDraw(canvas);
//ダミーです。
- //100msごとに1pxずつ3つ目の四角が下に降りる
+ //100msごとに1pxずつ2つ目の四角が下に降りる
canvas.drawRect(100, 100, 200, 300, paint);
- canvas.drawRect(300, 200, 400, 400, paint);
- canvas.drawRect(500, 100 + pageNo, 600, 300 + pageNo, paint);
+ canvas.drawRect(500, 100 + this.pageNo, 600, 300 + this.pageNo, paint);
}
//アニメーションの再生停止
- public void onClickPlayback(){
+ public int onClickPlayback(){
+ int num = 0;
if(timer != null){
//timerの終了
timer.cancel();
timer = null;
+ num = 0;
}
else{
//timerの生成
this.timer = new Timer();
this.timerTask = new CountUpTimerTask();
- this.timer.schedule(timerTask,0, msec);//スケジュールを100ms毎に設定する。
+ this.timer.schedule(timerTask,0, this.msec);//スケジュールを100ms毎に設定する。
+ num = 1;
}
+ return num;
}
//ページを進める
@@ -72,12 +75,23 @@
}
}
- //アニメーションを最初のページに戻す。
+ //最初のページに戻す。
public void resetAnimationPage(){
- pageNo = 0;
+ this.pageNo = 0;
postInvalidate();
}
+ //再生速度の変更
+ public void setAnimationSpeed(float speed){
+ this.msec *= speed;
+ }
+
+ //5秒スキップ
+ public void setAnimationSkip(int x){
+ this.pageNo += x * 5000 / this.msec;
+ if(this.pageNo < 0) this.pageNo = 0;
+ postInvalidate();
+ }
}
diff --git a/app/src/main/res/layout/activity_animation.xml b/app/src/main/res/layout/activity_animation.xml
index 69e0a2e..94a2c0b 100644
--- a/app/src/main/res/layout/activity_animation.xml
+++ b/app/src/main/res/layout/activity_animation.xml
@@ -12,19 +12,22 @@
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.0" />
+ app:layout_constraintVertical_bias="0.499" />
+
+
+
+
\ No newline at end of file