반응형

안드로이드 19

[Android/java] Fragment 동적 생성, 제거, 교체 애니메이션

안녕하세요 골드입니다. 오늘은 Android에서 코드로 Fragment를 동적으로 생성, 제거, 교체하는 방법에 대해서 글을 쓰도록 하겠습니다. Fragment는 Activity가 존재해야 존재할 수 있습니다. Activity에 추가된 Fragment를 생성하거나 제거, 교체하기 위해서 사용되는 메서드들은 Fragment Manager에서 제공합니다. Fragment Manager를 먼저 선언하고 Fragment Transaction를 사용하여 Fragment를 생성하거나 할 수 있습니다. Fragment Manager는 Activity가 Fragment를 관리하기 위해서 선언하게 됩니다. Fragment Manager의 참조는 getSupportFragmentManager 메서드를 사용합니다. 1. a..

[Android/java] Options Menu 만들기

안녕하세요 골드입니다.오늘은 안드로이드에서 많이 사용하는 App Bar 메뉴에 대해서 간단하게 글을 써보도록 하겠습니다. Appbar 메뉴는 오른쪽에 보이는 new버튼과 ... 버튼입니다.다양한 메뉴를 Appbar 위에 놓을 수 있고,메뉴가 너무 많으면 점점점 버튼에 넣어놓고 눌렀을 경우 팝업으로 보여줄 수 있습니다. 시작하기 전에 해야할 일이 있습니다.먼저 AndroidManifest.xml에서 태그 안에theme를 NoActionBar로 설정해주기 바랍니다. 1. activity_main xml 파일액션바를 지웠습니다.그 자리에 새로운 툴바를 만들기 위해 툴바를 생성합니다. 툴바를 사용할땐 빨란 에러가 생길 수 있습니다.수직 방향에 대한 속성을 설정해달라는 말인데요,저는 그래서 LinearLayout..

[Android/java] Retrofit2를 이용한 JSON 데이터 HTTP 통신(GET, POST) 방법 (CLEARTEXT 오류 해결)

안녕하세요 골드입니다. 오늘은 Retrofit2를 사용해서 HTTP통신을 하는 방법에 대해서 글을 쓰겠습니다. 1. HTTP 통신규약 HTTP는 www상에서 정보를 주고받을 수 있는 프로토콜입니다. HTTP는 이름이고 통신규약(프로토콜)은 원거리 통신 장비 사이에서 메세지를 주고 받는 규칙입니다. 웹에서 이루어지는 데이터 교환의 기초이며, 클라이언트와 서버를 이루고 요청/응답을 하는 프로토콜입니다. 작동 방식은 간단하게, 클라이언트에서 요청(Request)를 보내면 서버에서 그 요청을 받고 응답(Response)합니다. 서버의 과부화를 막기 위해 응답을 받으면 요청을 끊어버린다는 것은 많이 들어봤을 것입니다. http에는 서버에게 요청의 종류를 알려주는 몇 가지 메서드가 존재합니다. 그 중 네 가지를 살..

[Android/java] TabLayout과 ViewPager 안에 Fragment 사용하기

안녕하세요 골드입니다. 오늘은 TabLayout을 사용하는 방법에 대해서 포스팅 하겠습니다. TabLayout은 상당히 많이 쓰입니다. 한정된 화면에 방대한 자료를 한 번에 보여주기 어렵기 때문입니다. 이렇게 자료를 나누어 놓으면 직관적이고 보기도 편리합니다. 저는 TabLayout과 ViewPager를 사용할 것인데, ViewPager 안에 Fragment를 사용할 것입니다. Fragment는 Avtivity를 대신할 수 있는 유저 인터페이스입니다. 자세한 사항은 여기를 참고하세요. 다음에 Fragment에 대해서도 글을 쓰겠습니다. https://developer.android.com/reference/android/app/Fragment Fragment를 사용하는 이유는 Fragment는 Fragm..

[Android/java] MotionLayout 예제(touch and drag horizontally) 따라하기

안녕하세요 골드입니다. 오늘은 안드로이드 문서에 있는 MotionLayout 예제를 따라해보겠습니다. MotionLayout은 애니메이션 사용을 좀 더 직관적으로 사용할 수 있도록 도와줍니다. 1. Gradle 파일에 추가 MotionLayout은 ConstraintLayout의 하위 클래스이기 때문에 constraintlayout을 gradle(Modle: app)에 추가합니다. constraint 2.0부터 추가되었습니다. 2. activity_main.xml 선언 activity_main.xml입니다. 최상위 Layout을 MotionLayout으로 선언하고 밑에 객체를 하나 선언하였습니다. 중요한 속성은 MotionLayout 안에 있는 행위에 대한 xml파일을 참조하는 속성입니다. 만들고자 하는..

[Android/java] style.xml (스타일 및 테마)를 활용하여 속성 설정하기

안녕하세요 골드입니다. 오늘은 xml파일을 사용해서 속성을 간편하게 적용하는 방법에 대해서 설명하겠습니다. xml 파일에서 속성들을 정의하다보면 반복되는 코드들이 눈에 보일 때가 있습니다. 이렇게 반복되는 코드들을 따로 xml에 저장해놓고 필요할 때마다 꺼내 쓰면 코드도 줄어들고 유지보수에 매우 용이합니다. 반복되는 스타일이나 테마를 하나의 코드로 반복해서 사용하는 것과 더불어서 어플리케이션을 국제화 해야 한다면 하나의 text 값을 다양한 언어로 해석해야 합니다. 그때마다 해당 text 값이 포함되어 있는 java(kotlin) 코드 안에서 if문이나 등등 방법으로 분기 처리를 하는 것 보다 하나의 xml 코드 안에서 분기처리를 해 놓으면 자동으로 해당 지역에 따라서 변하는 모습을 볼 수도 있습니다. ..

[Android/java] Button Tween Animation(버튼 트윈) 만들기

안녕하세요 골드입니다. 오늘은 트윈 애니메이션에 대해서 작성하도록 하겠습니다. 트윈 애니메이션은 커졌다 작아졌다 하는 애니메이션을 말합니다. 상당히 많이 사용되는 기능입니다. 1. scale.xml 파일 생성 트윈 애니메이션을 위한 정보는 XML로 정의하거나 자바 코드에서 만들 수 있습니다. XML 파일은 /res/anim 폴더 밑에 .xml 형식으로 작성해야 합니다. anim 폴더 먼저 만들어보겠습니다. res 폴더에서 New -> Android Resource Directory 를 클릭합니다. 드랍다운메뉴에서 anim을 선택하고 OK를 누릅니다. (이름도 anim으로 자동 변경될 것입니다. 혹은 anim으로 변경합니다.) 여기서 이런 것들을 xml 파일로 만들어서 사용할 수 있습니다. 위치 이동 Tr..

[Android/java] Start another activity with intent and send text value (안드로이드 인텐트를 사용하여 다른 액티비티 열기, 메세지 보내기)

안녕하세요 골드입니다. 오늘은 인텐트라는 것을 사용하여 다른 액티비티를 사용해 보도록 하겠습니다. 인텐트는 다수의 액티비티로 구성된 애플리케이션에서 액티비티들 간에 통신을 위해 필요한 '통신 장치' 혹은 '메시지'를 의미합니다. 인텐트는 액티비티뿐만 아니라 다양한 주요 컴포넌트들이 수행해야 할 작업에 대한 정보를 가지며 작업 결과를 반환하기 위해서도 사용됩니다. 예를 들면, 어떤 그림을 보여주어야할 때, 출력해야 하는 그림이 무엇인지 알려주기 위해서 인텐트를 사용합니다. 혹은 다른 예로 입력을 받는 액티비티를 호출한 경우에 사용자가 입력한 정보가 무엇인지 반환해야 합니다. 이런 경우에 인텐트가 사용됩니다. 저는 이번 글에서 어플리케이션에서 입력을 받고 어떤 정보를 입력받았는지 인텐트 객체를 통해 반환하는..

[Android/java] Button Click to show toast text message (버튼 클릭할 때 토스트 메세지 생성하기)

안녕하세요 골드입니다. 오늘은 기본적인 버튼을 생성하고 버튼을 클릭하면 Toast 형식의 메세지가 나오게 하는 방법에 대해서 알아보겠습니다. 1. 새로운 프로젝트를 만들고 XML 파일 수정 안드로이드 스튜디오에서 새로운 프로젝트를 만듭니다. 프로젝트는 Empty Project로 지정하고 확인을 누릅니다. 다른 옵션을 선택하지 않았다면 기본적으로 MainActivity와 activity_main.xml 파일이 하나씩 만들어집니다. MainActivity 파일은 app/java/com.example.project1(app 고유 이름 폴더)/ 안에 있고, activity_main.xml 파일은 app/res/layout/ 폴더 안에 위치합니다. (혹시 파일을 찾지 못하겠다면 파일 정렬이 Android로 설정되..