목록안드로이드 스튜디오/Do it 안드로이드 스튜디오 (30)
JLOG
!목표 어플 내에서 여러 화면들을 만들어보고 각 화면을 전환해보자 대부분의 앱은 여러 화면으로 구성되어 있고, 화면을 전환하며 실행된다. 화면은 액티비티로 구현한다. 즉, 화면을 띄우거나 닫는 과정은 액티비티를 전환하는 것과 같다. *참고 안드로이드 앱의 4가지 구성 요소 앱을 단말에 설치했을 때 -액티비티(Activity) -서비스(Service) -브로드캐스트 수신자(Broadcast Recivr) -내용 제공자(Content Provider) 요소들에 대한 정보들을 요구한다. AndroidManifest.xml 파일이 이러한 구성 요소들에 대한 정보들을 가지고 있다. 만약 새 액티비티를 사용하고 싶다면 새 액티비티 정보를 매니페스트 파일에 추가하여야 한다. 소스코드에서 단순히 액티비티를 띄우려면 s..
! 목표 XML 레이아웃의 내용이 메모리에 객체화 되는 과정인 '인플레이션(inflation)'을 알아보자 어플을 구성하려면, XML 레이아웃만 있다고 해서 화면을 띄우고 앱을 실행할 수 없다. 하나의 화면에 대해 화면을 어떻게 보여줄지 결정해주는 XML 레이아웃과 화면의 기능을 담당하는 소스 코드 파일이 필요하다. MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //...생략 }..
목표! 시크바를 조절하면 해당값에 맞게 프로그레스바를 조절하고 textView에 해당 값을 나타내보자 새로운 프로젝트를 열고, Palette-Widgets에서 ProgressBar(Horizontal)과 SeekBar를 추가해주고 위치를 설정해주자, max 값을 모두 100으로 설정해주자. 그리고 textView의 textSize를 30sp로 설정하고 text를 '0'으로 설정하자. Java 코드에 seekBar 값이 변경 될 때 마다 OnSeekBarChangeListener를 이용해서 이벤트를 처리해주자. MainActivty.java 코드 package org.techtowm.example06; import androidx.appcompat.app.AppCompatActivity; import an..
! 목표 진행상황을 보여 줄 수 있는 프로그래스바를 사용해보자 프로그레스바를 이용해서 일의 진행 상태를 나타내 줄 수 있다. *대표적인 형태의 프로그래스 바들 -막대 모양 : 작업의 진행상태를 막대 모양으로 표시, style 속성 값을 '?android:attr/progressBarStyleHorizontal'로 설정한다. -원 모양 : 작업이 진행 중임을 알려준다. 원 모양으로 된 프로그레스 바가 반복적으로 표시된다. XML 레이아웃에 프로그레스바를 추가할 때 태그가 사용된다. -max 속성 : 값의 최대 범위를 설정해준다. -progress 속성 : 현재 진행 값을 설정해준다. 50%가 진행되었다면 max 속성에는 100, progress 속성에는 50를 설정해줄 수 있다. 진행률이 변경이 된다면 p..
이전강의에 이어서 진행합니다. [안드로이드 스튜디오 강좌 #16] 토스트, 스낵바, 대화상자 - 토스트(Toast) ! 목표 아래에서 올라와서 간단한 메세지를 나타내주는 스낵바와 사용자에게 확인을 받거나 간단한 선택을 받기 위한 대화상자에 대해서 알아보자 1. 스낵바 보여주기 간단한 메세지를 보여줄 때 토스트 대신 스낵바를 사용하는 경우가 많다. 스낵바는 외부 라이브러리로 추가되었기 때문에 스낵바가 들어있는 디자인 라이브러리를 프로젝트에 추가해야 사용할 수 있다. [안드로이드 스튜디오 강좌 #16] 토스트, 스낵바, 대화상자 - 토스트(Toast) 강좌에 이어서 진행한다. *외부 라이브러리 추가하는 법 안드로이드 스튜디오 상단에 [File-Project Structure..]를 클릭 대화 상자가 보이면 ..
public void setGravity(int gravity, int xOffset, int yOffset) public void setMargin(float horizontalMargin, float verticalMargin) ! 목표 간단한 메세지를 보여주었다 없어지는 뷰인 토스트를 알아보자 토스트는 간단한 메세지를 잠깐 보여주었다가 없어지는 뷰이다. 앱이 화면에서 사라지더라도 필요한 메세지가 그대로 표시 되 앱의 상태와 관계없이 보여줄 수 있다. 1. 토스트 메세지를 보여주는 방법 Toast.makeText(Context context, String message, int duration).show(); context 객체는 context 클래스를 상속한 액티비티를 사용할 수 있고, 참조할 수 ..
! 목표 단말 방향을 전환 했을 때 화면 방향이 가로, 세로로 전환되는 이벤트를 알아보자 1. 단말 방향 변경 단말을 가로/세로 방향으로 바꿨을 때 가로 세로의 화면 비율에 따라 화면이 다르게 보여야 한다. 단말 방향이 전환 되었을 때 화면이 다르게 나타나게 하기 위해 XML 레이아웃을 따로 만들어야 한다. 실습하기 위해 SampleOrientation 프로젝트를 생성해주자 res 폴더 아래에 새 폴더를 만들어주자 res 폴더 클릭 - 마우스 우클릭 - New - Android Resource Directory Directory Name에 layout-land를 입력하고 OK를 누르면 폴더가 생성된다. 하지만 새로 만든 폴더는 프로젝트 창에 보이지 않는다. 프로젝트 창에서는 필요한 정보만을 정리해 보여주..
이전 강의에 이어서 진행합니다. [안드로이드 스튜디오 강좌 #15] 이벤트 처리 이해하기 - 이벤트 처리 방식 / 터치 이벤트 ! 목표 눌림, 움직임, 뗌, 드래그 등을 처리하는 제스처 이벤트와 키를 눌렀을 때 발생하는 키 이벤트에 대해서 알아보자. 1. 제스처 이벤트 처리하기 제스처 이벤트는 터치 이벤트 중 스크롤 등을 구별한 후 알려주는 이벤트이다. GestureDetector로 제스쳐 이벤트를 처리해줄 수 있고, 이 객체에 터치 이벤트를 전달하면 각 사황에 맞는 메서드를 호출한다. 아래의 추가된 코드를 입력해보자 MainActivity.java package org.techtowm.sampleevent; import android.os.Bundle; import android.view.Gesture..
! 목표 안드로이드 스튜디오에서 이벤트의 종류들과 방식들을 알아보자 이벤트 종류 중 하나인 터치 이벤트에 대해서 알아보자 1.이벤트 처리방식 -위임 모델(Delegation Model) : 화면 하는 발생 이벤트를 위젯 객체에 전달한 후 그 이후의 처리 과정을 버튼에 위임하는 모델 각각의 뷰 마다 이벤트 처리 루틴을 할당해주어 위젯 마다 개별적으로 이벤트를 처리하는 객체 지향 코드를 만들 수 있다. 위임 모델을 각각의 이벤트를 처리할 수 있는 리스너(Listener) 인터페이스를 등록할 수 있게 한다. *이벤트 종류 -터치 이벤트(Touch Event) : 손가락으로 화면을 터치하면 발생하는 이벤트 -키 이벤트(Key Event): 실제 버튼이나 소프트 키보드를 누르면 발생하는 이벤트 -클릭 이벤트(Cl..
! 목표 상태에 따라 그래픽이나 이미지를 선택적으로 보일 수 있게 해주는 드로어블에 대해 알아보자 1. 뷰의 배경 만들기 뷰의 background 속성은 배경색을 설정하거나 이미지 파일을 설정할 때 사용한다. 하지만 이미지를 배경으로 설정하면 이미지는 아무런 변화가 없다. 버튼의 배경으로 이미지를 설정하면 버튼이 눌리거나 눌리지 않았을 때를 구분할 수 있어야 되는데 그러지 못한다. 드로어블은 상태에 따라 그래픽이나 이미지가 선택적으로 보일 수 있게 해준다. 드로어블을 사용해서 버튼이 눌렸을 때 눌린 이미지가 보이게 설정할 수 있다. -실습 SampleDrawable이라는 새 프로젝트를 생성하고 가운데 TextView를 지워주자. 실습에 쓸 이미지 하단의 2개를 drawable 폴더에 넣자 SampleDr..