분류 전체보기 121

[Android] 애니메이션 효과 / animation / View 움직임, 이동 / 트윈 애니메이션

이번 포스팅에서는 View 에 애니메이션 효과를 부여함으로써, 앱에 생동감을 불어 넣어주는 작업을 해볼 것이다. 안드로이드에서 애니메이션을 적용할 수 있는 방법은 다양하다. 비트맵 애니메이션 UI 가시성 및 모션 애니메이션 물리학 기반 모션 레이아웃 및 액티비티 변경 애니메이션 등등 공식 문서에서 소개하는 종류만 해도 정말 많다. 우리는 그중에서도, 가장 보편적으로 사용할 수 있는 '트윈 애니메이션' 에 대해 알아보겠다. 트윈 애니메이션이란? 회전 (rotate) 규모 (scale) 이동 (translate) 투명도 (alpha) 위 4가지 방식을 xml 파일로 정의하여 View 에 적용하는 애니메이션 방식이다. 구현이 간단하기 때문에, 초보자들도 쉽게 사용할 수 있다. 애니메이션 디렉토리 및 파일 생성..

[Android] visibility 속성 / visible, invisible, gone / 표시, 숨김

이번 포스팅에서는 View 클래스의 visibility 속성에 대해 알아보겠다. visibility 속성이란? *visibility : 가시성 앱을 만들다보면 사용자와의 상호 작용을 통해 어떤 View 를 숨기거나, 표시하고 싶을 때가 있다. 우리는 visibility 속성을 이용하여 해결할 수 있다. visibility 는 View 클래스에 정의되어 있으며 즉, 모든 View 를 대상으로 사용할 수 있다. visibility 속성의 종류 다음과 같이 3가지로 분류한다. · visible 해당 View 가 보이는(표시되는) 상태이다. · invisible 해당 View 가 보이지 않는(숨겨진) 상태이다. 숨겨진 상태이지만, 해당하는 공간을 차지하고 있다. · gone 해당 View 가 보이지 않는(숨겨진..

[Android] 토스트 메시지 / 커스텀 토스트 / Toast

이번 포스팅에서는 안드로이드 토스트 메시지에 대해 알아보겠다. 토스트 (Toast) 토스트 메시지는 일종의 알림이라고 생각하면 쉽다. 공식 문서에서는 다음과 같이 설명한다. 토스트 메시지는 작업에 관한 간단한 피드백을 작은 팝업 형태로 제공한다. 진행 중인 활동과 상호 작용은 그대로 유지된 채, 메시지에 필요한 공간만 차지한다. 앱이 Android 12(API 수준 31) 이상을 타겟팅 한다면, 토스트 텍스트는 두 줄로 제한되고 텍스트 옆에 애플리케이션 아이콘이 표시된다. 토스트 사용법 토스트 메시지의 사용 문법은 다음과 같다. Toast.makeText(context,text,duration).show(); Toast 클래스의 makeText(context, text, duration) 메서드와 sho..

[Android] 이벤트 리스너 / onClick / onLongClick Listener 사용 예제

모든 앱은 사용자와 상호 작용이 가능해야 한다. 가장 기본적으로 생각해볼 수 있는 것은, 사용자가 앱 내 요소를 터치하는 것부터 시작된다. 사용자와의 상호 작용을 통해 앱에서는 다양한 효과를 낼 수 있다. 이번 포스팅에서는 안드로이드의 이벤트 리스너에 대해 알아보자. 이벤트 리스너 이벤트 리스너는 사용자와의 상호 작용을 보다 쉽게 도와주는 인터페이스이다. 공식문서에서는 다음과 같이 설명한다. 이벤트 리스너란 View 클래스 내에 있는 인터페이스이며, 콜백 메서드를 가지고 있다. 이러한 메서드는 리스너가 등록된 뷰가 사용자 상호작용으로 인해 UI 내 항목과 함께 트리거되었을 때 Android 프레임워크에 의해 호출된다. 콜백 메서드의 종류는 다음과 같다. · onClick() · onLongClick() ..

[Android] Intent 인텐트 (2) - 액티비티 데이터 전달 / 액티비티 값 전달 / 액티비티 데이터 이동

지난 포스팅에 이어 이번 포스팅에서는 인텐트를 사용하여 액티비티 간 데이터를 주고 받는 방법에 대해 알아보자. 인텐트 (1) 포스팅에서 사용하던 코드를 재탕하겠다. 먼저, 데이터를 보내주는 인텐트의 문법은 다음과 같다. Intent i = new Intent(MainActivity.this,SecondActivity.class); i.putExtra(Key,Value); // 이 부분만 추가된다. startActivity(i); 인텐트를 이용해 액티비티를 전환하는 문법에서 한 줄만 추가해주면 된다. putExtra() 메서드로 웬만한 건 거의 담을 수 있다. putExtra() 괄호 안의 인자 값은 대부분, Key - Value 형식으로 이루어져 있다. Key 값은 식별자 역할을 해준다. Key 값이 일..

[Android] Intent 인텐트 (1) - 액티비티 전환 / 액티비티 이동 / 명시적 인텐트 / 액티비티 전환 생명주기

지난 포스팅에서 앱의 4대 컴포넌트에 대해 공부했었다. 그리고 각각의 컴포넌트는 인텐트를 통해 통신한다. (액티비티 시작, 서비스 시작, 브로드캐스트 전달 등) 이번 포스팅에서는 인텐트에 대해 알아보자. 인텐트 (Intent) 공식 문서에서는 인텐트를 다음과 같이 설명한다. '인텐트는 메시징 객체로서, 다른 앱 구성 요소로부터 작업을 요청하는 데 사용한다' 위에서 언급했듯, 인텐트는 컴포넌트의 통신을 담당해준다. 인텐트는 사용 방법에 따라 두가지 유형으로 나눌 수 있다. 명시적 인텐트 명시적 인텐트는 인텐트를 충족하는 구성 요소를 직접 지정한다. 이를 위해 해당 요소의 이름을 제공해야 한다. (패키지, 클래스 등) 일반적으로 앱 안에서 구성 요소를 시작할 때 사용한다. (액티비티, 서비스 등) 암시적 인..

[Android] 텍스트 단위 / textSize 단위 / dp, sp 차이점

매번 textSize 를 작성할 때마다, 다음과 같은 선택지를 마주한 적이 있을 것이다. 안드로이드에서 텍스트 사이즈를 지정할 때는 다양한 단위를 적용할 수 있다. 각 단위는 무엇을 뜻하며, 어떠한 경우에 사용해야 할까? 결론부터 말하자면, dp 와 sp 를 주로 사용해야 한다. 개발 공부를 처음 시작했다면 dp, sp 단위는 생소할 것이다. in(인치), mm(밀리미터), px(픽셀) 등의 단위가 더 익숙할 것이다. 하지만 위 단위들은 크기가 고정적(물리적)이라는 특징이 있다. 하지만 dp 와 sp는 크기가 유동적으로 변동될 수 있다. dp (density independent pixel) 160dpi 화면을 기준으로한 픽셀이다. *1인치 당 160개의 점으로 구성된 디스플레이 위 기기 기준으로는 1d..

[Android] 레이아웃 Layout - 제약 레이아웃 / 리니어 레이아웃 / 테이블 레이아웃 / 프레임 레이아웃 / Constraint Layout / Linear Layout / Table Layout / Frame Layout / 레이아웃 종류 / 레이아웃 생성

안드로이드 앱을 백엔드와 프론트엔드로 구분한다면 다음과 같이 볼 수 있다. · 백엔드 - 자바 & 코틀린 · 프론트엔드 - 레이아웃 앱 개발자라면, 백엔드 언어만 공부할 것이 아니라 프론트엔드를 담당하는 레이아웃 또한 다룰 줄 알아야 한다. 이번 포스팅에서는 레이아웃에 대해 공부해보자. 레이아웃이란? 공식 문서에서는 다음과 같이 설명한다. '앱에서 UI 를 위한 구조를 정의하는 요소' 사전적 의미는 다음과 같다. '글이나 그림 등을 효과적으로 설계 · 배치하는 일' 레이아웃은 View Group 이라고 볼 수 있다. 우리는 뷰(View) 요소를 효과적으로 설계 · 배치하면 된다. 레이아웃 생성 1. 액티비티 추가 새로운 액티비티를 추가하면 기본적으로 2개의 파일이 생성된다. 자바 개발 기준으로 설명하면,..