Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Kotlin으로 Android 앱에 플링(Fling) 제스처 감지 기능 구현하기

이 튜토리얼에서는 Kotlin을 사용하여 Android 앱에서 플링(Fling) 제스처 감지를 구현하는 방법을 단계별로 알아봅니다. 플링 제스처란 화면을 빠르게 쓸어 넘기는 동작으로, 리스트 스크롤이나 페이지 전환 등 다양한 UI 인터랙션에 활용됩니다.

1단계: 새 프로젝트 생성

Android Studio에서 File → New Project를 선택하고, 새 프로젝트를 만드는 데 필요한 모든 세부 정보를 입력하여 프로젝트를 생성합니다.

2단계: 레이아웃 파일 작성

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="70dp"
        android:background="#008080"
        android:padding="5dp"
        android:text="TutorialsPoint"
        android:textColor="#fff"
        android:textSize="24sp"
        android:textStyle="bold" />
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Fling Gesture"
        android:textColor="@color/colorAccent"
        android:textSize="24sp"
        android:textStyle="bold" />
</RelativeLayout>

3단계: MainActivity.kt 코드 작성

src/MainActivity.kt 파일에 아래 코드를 추가합니다. 핵심은 GestureDetector.OnGestureListener 인터페이스를 구현하고, onFling() 메서드를 오버라이드하여 플링 제스처가 감지되었을 때 원하는 동작을 처리하는 것입니다.

import android.os.Bundle
import android.view.GestureDetector
import android.view.MotionEvent
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity(), GestureDetector.OnGestureListener {

    lateinit var gestureDetector: GestureDetector

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        gestureDetector = GestureDetector(this)
    }

    override fun onTouchEvent(event: MotionEvent): Boolean {
        return if (gestureDetector.onTouchEvent(event)) {
            true
        } else {
            super.onTouchEvent(event)
        }
    }

    override fun onDown(p0: MotionEvent?): Boolean {
        return false
    }

    override fun onShowPress(p0: MotionEvent?) {
        return
    }

    override fun onSingleTapUp(p0: MotionEvent?): Boolean {
        return false
    }

    override fun onScroll(
        p0: MotionEvent?,
        p1: MotionEvent?,
        p2: Float,
        p3: Float
    ): Boolean {
        return false
    }

    override fun onLongPress(p0: MotionEvent?) {
        return
    }

    override fun onFling(
        p0: MotionEvent?,
        p1: MotionEvent?,
        p2: Float,
        p3: Float
    ): Boolean {
        Toast.makeText(applicationContext, "Fling Gesture", Toast.LENGTH_SHORT).show()
        return true
    }
}

코드 설명

  • GestureDetector(this): 현재 액티비티를 리스너로 전달하여 제스처 감지기를 초기화합니다.
  • onTouchEvent(): 화면의 터치 이벤트를 GestureDetector로 전달하여 제스처를 분석하도록 합니다.
  • onFling(): 사용자가 화면을 빠르게 밀었을 때 호출되며, 여기서는 토스트 메시지를 표시합니다.

4단계: AndroidManifest.xml 확인

androidManifest.xml 파일에 아래와 같이 액티비티가 등록되어 있는지 확인합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.q11">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 Android 모바일 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 열고 툴바의 Run(실행) 아이콘을 클릭하세요. 그런 다음 실행 옵션 목록에서 자신의 모바일 기기를 선택하면, 기기 화면에 앱의 기본 화면이 표시됩니다.

앱이 실행된 상태에서 화면을 빠르게 쓸어 넘기면(플링 제스처) "Fling Gesture"라는 토스트 메시지가 화면에 나타나는 것을 확인할 수 있습니다.