300x250

이 포스팅은

developer.android.com/guide/topics/ui/declaring-layout?hl=ko

안드로이드 디벨로퍼 공식 홈페이지 문서를 읽고 요약한 글입니다.

 

레이아웃


- 앱에서 사용자 인터페이스 위한 구조 

- 모든 요소는 View와 ViewGroup 객체의 계층 구조를 사용하여 빌드

- View는 일반적으로 사용자가 보고 상호작용할 수있는 것을 그림.

-ViewGroup은 View및 기타 ViewGroup 객체의 레이아웃 구조를 정의하는 보이지 않는 컨테이너

 

UI 레이아웃을 정의하는 뷰 계층 구조 예

 

View 객체


- 일반적으로 위젯 이라고 함

- Button, TextView와 같은 여러 시브클래스 중 하나

 

ViewGroup 객체


- 일반적으로 레이아웃 이라고 함

- LinearLayout 또는 ConstraintLayout과 같은 다양한 레이아웃 구조를 제공하는 여러 유형 중 하나 

 

 

레이아웃을 선언하는 방법


UI 요소를 XML로 선언

- Android는 위젯, 레이아웃과 같이 View클래스와 서브 클래스에 상응하는 간단한 XML어휘를 제공.

- Android Studio의 Layout Editor를 사용하여 드래그 앤 드롭 인터페이스로 XML 레이아웃을 빌드 할 수 있음.

- 동작을 제어하는 코드로부터 앱 표현을 분리 

- 다양한 화면 크기와 방향에 여러가지 레이아웃을 쉽게 제공.

 

 

런타임에 레이아웃 요소 인스턴스 화

- 앱은 프로그래매틱 방식으로 View 및 ViewGroup 객체를 만들고 그 속성을 조작할 수 있음.

 

Android 프레임워크는 두가지 방법을 조합하여 사용가능

> 앱의 기본 레이아웃을 XML에서 선언.

> 런타임에 레이아웃을 수정.

 

XML 쓰기


- 각 레이아웃 파일에는 반드시 딱 하나의 루트 요소만 있어야 하며, View 또는 ViewGroup 객체여야 함.

- 루트 요소를 정의한 후, 더 많은 레이아웃 객체 또는 위젯을 하위 요소로 추가하여 계층적으로 레이아웃을 정의하는 뷰 계층 구조를 빌드

Example ) Vertical 방향 LinearLayout을 사용, TextView, Button을 보유하는 XML

- res/layout디렉터리에 .xml확장자로 저장

 

XML 리소스 로드


- 각 XML레이아웃 파일이 View리소스 안에 컴파일 됨

- Activity.onCreate() 콜백 구현에서 앱코드로부터 레이아웃 리소스를 로드해야 함.

> setContentView() 호출, R.layout.layout_file_name의 형태로 레이아웃 리소스 참조로 전달.

 

반응형
300x250

2021.05. 30

- 2021년 4월 29일 Apple Sillicon에 최적화 된 Android Studio 프리뷰 버전 출시
- 아래 글에 설치 가이드

https://ckstmsla.tistory.com/entry/M1-Mac-Apple-Silicon-arm64-Preview-버전

 

 

 

 


*Preview 배포 단계*임

알려진 이슈 및 사용법


github.com/google/android-emulator-m1-preview

 

google/android-emulator-m1-preview

Contribute to google/android-emulator-m1-preview development by creating an account on GitHub.

github.com




실행


위 메시지가 팝업되고 에뮬레이터가 실행된다.



프리뷰 단계라 큰 기대하지 않고
Build and Run 되는것에 일단 만족.

반응형
300x250

이 글은 android.View 클래스 학습을 위해

아래 레파지토리 Google Samples / mlKit을 활용하였습니다.

 

mlkit/android/material-showcase at master · googlesamples/mlkit · GitHub

 

googlesamples/mlkit

A collection of sample apps to demonstrate how to use Google's ML Kit APIs on Android and iOS - googlesamples/mlkit

github.com

material-showcase



출처: https://ckstmsla.tistory.com/entry/Android-View-GraphicOverlay-01-클래스-다이어그램 [찬스님의 안드로이드, 웹 기록장]

 

목표 :

ML Kit 프로젝트의 GraphicOverlay ( 이하 관련 클래스 포함 ) 를 분석하여

사용자 정의 뷰를 그리는 방법과 구현 흐름을 익힌다.

 

java.lang.Object
	android.view.View

 

 

무엇을 준비해야 할까? 


처음에 android.view.View 클래스를 구현하는 클래스를 정의한다.

이 View 클래스는 Button이나 EditText와 같은 위젯의 뷰 클래스 최상위이다.

( 물론 Object 클래스가 더 상위에 위치 하지만 뷰 관련 클래스 한정 )

 

View 클래스의

여러 카테고리 요소 중 " Drawing " 에 해당하는 onDraw( android.graphics.Canvas ) 메서드를 오버라이딩한다.

뷰 카테고리

 

 

 

어디에 그려지는걸까 ?


onDraw( Cavans ) 메서드는 뷰의 위치와 크기가 정의된 뒤, 뷰가 콘텐츠를 렌더링 할 때 호출된다.

즉, 그려져야 할 때 호출된다. 

 

이 때, " 그려지는 곳 "을 알려준다.

그게 바로 Canvas 인스턴스이다.

 

 

무엇을 그릴지 ?


Canvas 인스턴스에 무엇을 그릴지 알려주면 된다.

 

Canvas를 통해 그릴 수 요소는 아래

Text, Verticle, RoundRect, Rect, Picture, Circle, Bitmap 등 다양하다.

 

여기서 android.graphics.Paint 클래스를 이용하여

위 요소들을 어떻게 그릴지에 대한 정보 ( 속성 )  Color, Style, Anti Aliasing, Alpha 등 을

설정할 수도 있다.

 

Paint 클래스 알아보기

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
300x250

 

AVD Manager > 해당 에뮬레이터 우측 " Edit 버튼 / Edit this AVD " 선택 > Show Advanced Settings > Camera

 

반응형

+ Recent posts