今日は『画面をタッチしてバーを動かす』です
import android.content.Context import android.os.Bundle import android.util.DisplayMetrics import android.view.MotionEvent import android.view.View import android.view.WindowManager import android.widget.ImageView import android.widget.TextView import androidx.appcompat.app.AppCompatActivity var SCREEN_HEIGHT = 0 //画面の高さ var SCREEN_WIDTH = 0 //画面の幅 val tate: Int = 8 //ブロックの縦の数 val yoko: Int = 5 //ブロックの横の数 var flag_Block = Array(tate) { BooleanArray(yoko) { true } } //ブロックの表示/非表示のフラグ open class MainActivity : AppCompatActivity() { private var barx = 0F //バーのx座標 private var flag_Start = false //スタートフラグ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //スクリーンサイズの取得 val vm: WindowManager = this.getSystemService(Context.WINDOW_SERVICE) as WindowManager val display = vm.defaultDisplay val metric = DisplayMetrics() display.getMetrics(metric) SCREEN_WIDTH = metric.widthPixels SCREEN_HEIGHT = metric.heightPixels //ブロックをすべて表示 flag_Block = Array(tate) { BooleanArray(yoko) { true } } } override fun onTouchEvent(event: MotionEvent?): Boolean { val startLabel:TextView = findViewById(R.id.startLabel) val bar:ImageView = findViewById(R.id.bar) if(flag_Start == false){ flag_Start = true barx = bar.x startLabel.setVisibility(View.GONE) }else{ //バーを動かす if(event?.getAction() == MotionEvent.ACTION_MOVE) { barx = event.x } else{ barx = barx } bar.setX(barx) } return true } }
(再生できなくなっていたので2024.2.5に修正しました)
タップしてスタート
バーが動くようになりました