Android126 Android Studio, Kotlin] 화면 터치 시 클릭이벤트와 손가락 무빙 이벤트를 다르게 처리하기 가끔 모션 개발을 하다 보면, Action_Move가 들어가야 할 케이스가 있다. 여기서, 손가락을 단순 클릭 했을 때와 움직임과 무빙 후 움직임이 달라야하는 케이스가 있다. 이 때, 얼마나 짧게 클릭하던 무조건 Action_move가 호출된다 봐도 무방하기 때문에, 초기 클릭과 손가락을 뗐을 때의 시간차를 계산하여 이를 단순 클릭인지, 혹은 이동 후 손가락을 뗀 것인지 판단한다. 사용자의 특성과 코드의 특징에 따라 longClickLimitf를 조절하여 클릭으로 판단하는 시간의 길이를 유동적으로 조절해야 한다. 호출 시기는 아래에 주석으로 적어두었다. var firstClickTime : Long = 0 val longClickLimit = 200 rootView?.setOnTouchListener {.. 2023. 3. 17. Android Studio, Kotlin] WindowManager을 이용하여 휴대폰 최상단에 화면 그리기 요즘 휴대폰 최상단에 뷰를 그려주는 앱이 많다. 아마 "다른 앱 위에 그리기" 를 허용하는 앱이 많은 것을 다들 보셨을텐데, 그 기능이다. 어떻게 사용하는지 보자. 간단하게 액티비티와 윈도우에 구애받지 않는다는 것을 보여주기 위해 두 개의 액티비티와, 윈도우 위에 그릴 하나의 뷰를 준비한다. 예시 파일은 아래에 접어두었다. (접은 글 안에 있는, 최상단 뷰를 호출하는 코드와 권한을 요쳥하는 코드는 아직 포함하지 않았다.) (또한, 뷰를 껐다가 켤 수 있는 전역변수를 const로 지정하기 위해 object 파일을 하나 더 만들었다) 더보기 - MainActivity.kt class MainActivity : AppCompatActivity() { private lateinit var textViewMain.. 2023. 3. 16. WindowManager가 무엇일까? 최상단에 뷰를 넣어야 할 일이 생겼다. 그럼 이걸 어떻게 넣는데? 바로 WindowManager을 이용하는 것이다. 그럼 WindowManager은 뭔데? 우리가 앱을 만들 때, 기본적으로는 볼 일이 없는 인터페이스다. 뷰를 알아서 윈도우에 붙여주는게 오버라이딩 되어있으니 평소에는 볼 일이 없는 것이다. 역할은 표면을 할당하고 애플리케이션(애플리케이션)이 이동할 위치와 계층화 방법을 결정한다. 근데 뷰가 액티비티에 종속되지 않고 윈도우에 종속되어야 하는.. 그런 특수한 상황이 발생한다면, 그 때 호출하는 매서드이다. 이 때, 액티비티를 굳이 호출하지 않고도 windowmanager과 직집 소통할 수 있다. 그래서 그거 어떻게 하는건데? 호출은 간단하다. 액티비티에 종속되어 있기 때문에 activity를 .. 2023. 3. 16. JAVA] 안드로이드 진동 구현 프로젝트 중에 안드로이드 진동을 구현해달라는 의뢰를 받았다. 진동 구현은 어렵지 않다. 먼저 AndroidManifest.xml에 진동 관련 퍼미션을 추가한다. 진동엔 두가지 방법이 있는데, vibrate매서드에 넣는 값에 따라 달라지는데 VibrationEffect.createOneShot(int milliseconds, int amplitude)는 시간과 강도를 조절할 수 있지만 API 26 이상에서만 동작한다. (int milliseconds) 시간만 넣게 되면 강도는 조절할 수 없지만 API와 관계 없이 진동을 넣을 수 있다. 진동 예시 public class ExampleActivity extends AppCompatActivity { private ImageView imageViewExampl.. 2023. 1. 19. 이전 1 2 3 4 5 ··· 32 다음 반응형