Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- aPK
- flutter
- react-native
- 뒤로가기 안됨
- 설정
- WPF
- Android
- sourcetree
- 안됨
- EC2
- 리액트 네이티브
- Invalid credentials
- 빌드 오류
- VisualStudio
- gradle
- 개발환경설정
- Kotlin
- not working
- 안드로이드
- Git
- bitbucket
- react
- 리액트
- 예제
- 디버깅
- 안드로이드 스튜디오
- 데이터바인딩
- 인증문제해결
- AWS
- git인증
Archives
- Today
- Total
물에 살고싶은 개발자
[Android] View를 돌아다니게 하는 애니메이션 만들기 본문
뷰가 화면 내에서 자유롭게 움직이는 것을 상상해보세요. 마치 화면 속의 작은 생명체가 돌아다니는 것 같죠? 이런 효과는 사용자 인터페이스에 생동감을 더해줍니다. 그럼, 어떻게 이런 애니메이션을 구현할 수 있을까요?
기본 설정
먼저, 안드로이드 스튜디오 프로젝트에 필요한 뷰를 준비합니다. 여기서는 FrameLayout을 사용하며, 이 내부에 움직일 ImageView나 ConstraintLayout 등을 배치합니다.
<!-- activity_main.xml -->
<FrameLayout
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/movingView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_your_image"/>
</FrameLayout>
애니메이션 로직 구현
다음으로, Activity 또는 Fragment에서 애니메이션 로직을 구현합니다. 기본적으로 뷰의 위치를 주기적으로 변경하여 움직임을 만들어냅니다.
class MainActivity : AppCompatActivity() {
private lateinit var movingView: View
private lateinit var rootLayout: FrameLayout
private var directionX = 1
private var directionY = 1
private val speed = 5
private val handler = Handler(Looper.getMainLooper())
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
movingView = findViewById(R.id.movingView)
rootLayout = findViewById(R.id.rootLayout)
moveView()
}
private fun moveView() {
handler.postDelayed({
// 현재 위치를 계산합니다.
var newX = movingView.x + directionX * speed
var newY = movingView.y + directionY * speed
// 경계 검사 및 방향 전환
if (newX <= 0 || newX >= rootLayout.width - movingView.width) {
directionX *= -1
}
if (newY <= 0 || newY >= rootLayout.height - movingView.height) {
directionY *= -1
}
// 뷰의 위치를 업데이트합니다.
movingView.x = newX
movingView.y = newY
moveView()
}, 30)
}
}
이 코드는 Handler를 사용하여 주기적으로 ImageView의 위치를 업데이트합니다. directionX와 directionY 변수는 뷰의 이동 방향을 결정하며, speed 변수는 이동 속도를 조절합니다.
마무리
이렇게 하면, 뷰가 화면 내에서 마치 살아있는 듯이 움직이게 됩니다. 사용자들은 이런 독특한 애니메이션을 보며 즐거움을 느낄 것입니다. 이번 포스트가 안드로이드 개발의 재미있는 한 부분을 탐험하는 데 도움이 되었기를 바랍니다.
Comments