Android

    Android # Linear Layout

    Linear Layout 한 방향으로만 뷰를 쌓음. 방향(orientation)이 필수 속성. (horizontal / vertical). 가로(horizontal) : 위젯(widget)이 가로로 쌓인다. 세로(vertical) : 위젯(widget)이 세로로 쌓인다. 뷰 속성값을 잘 확인하자(match_parent/wrap_content)

    Android # java file에서 layout 생성

    java source 코드로 layout 생성 화면에 보이는 레이아웃 소스 코드와 자바 소스 코드는 서로 분리되어 있어 화면 구성을 바꿀 때 자바 소스 코드는 그대로 두고 레이아웃 소스 코드만 수정하면 된다. 그러나 화면 레이아웃을 미리 만들 수 없는 경우 또는 필요할 때마다 바로바로 레이아웃을 만들어야 하는 경우에는 자바 소스코드에서 화면 레이아웃을 구성해야 할 수도 있다. 예를 들어, 사용자가 입력한 데이터나 파일에서 읽어 들인 데이터 또는 네트워킹을 통해 서버에서 받아온 데이터의 유형에 따라 화면의 구성을 바꾸고 싶다면 XML로 정의하는 것보다 자바 코드에서 화면을 구성하는 것이 훨씬 더 효율적이다. 간단한 예제로 살펴보겠다. [LayoutcodeActivity.java] 1 2 3 4 5 6 7 ..

    Android # 상태 드로어블 적용

    상태 드로어블 적용해보기 상태 드로어블은 뷰의 상태에 따라 뷰에 보여줄 그래픽을 다르게 지정할 수 있다. 버튼(이미지)을 눌렀을때와, 누르지 않은 상태를 다른 이미지로 보여주게 할 수 있다. finger.drawable.xml을 만들어서 다음과 같이 작성해보자. [app/res/drawable/finger_drawable.xml] Colored by Color Scripter cs 상태 속성이 설정되지 않은 태그에는 drawable 속성값으로 @drawable/finger를 입력했다. 이렇게 하면 finger.png 이미지가 보이게 된다. state_pressed라는 상태 속성이 설정된 태그에는 drawable 속성 값으로 @drawable/finger_pressed를 입력했다. 이 이미지는 뷰가 눌렸을..

    Android # drawable 폴더(해상도)

    drawable 폴더 - 해상도에 따라 접근하기 해상도 폴더이름 초고해상도 /app/res/drawble-xhdpi 고해상도 /app/res/drawble-hdpi 중간 해상도 /app/res/drawble-mdpi 저해상도 /app/res/drawble-ldpi 안드로이드는 화면의 해상도에 따라 서로 다른 크기(모양)의 이미지를 로딩할 수 있다. /app/res/drawble 폴더에 이미지를 그냥 넣으면 일반적으로 사용되는 이미지로 인식한다. 하지만 /app/res/drawble-hdpi에 넣은 이미지는 고해상도 화면, /app/res/drawble-mdpi에 넣은 이미지는 중간 해상도 화면으로 자동 적용된다. 각각의 폴더는 직접 만들어야 한다. 프로젝트를 처음 만들면 /app/res/drawble 폴..

    Android # Androidx (2/2)

    AndroidX : Android Extension Libraries Support Library를 사용하지 않고, 앱을 개발하는 것은 불가능할 정도로 Support Library는 안드로이드 개발 생태계의 큰 축이었다. 이전 버전의 안드로이드에 대한 하위 호환성 유지, 안드로이드 프레임워크가 제공하지 않는 위젯 및 유틸리티 기능 지원, TV, 차량, 웨어러블과 같은 다양한 폼 팩터에 대응하기 위한 기능을 제공한다. 하지만 이런 기능적인 측면과 달리 몇 가지 설계적인 한계도 갖고 있었다. Support Library의 큰 집합 중 하나이자 2011년 최초로 배포된 com.android.support:support-v4를 예로 들면, 첫째로 메이븐 아티팩트와 패키지명이 주는 모호함이다. support-v4..

    Android # Androidx (1/2)

    androidx 오랜만에 안드로이드 스튜디오를 접해본 나에게 gradle에서 에러가 생기고, androidx를 보았을 때는 도대체 어떻게 에러를 해결해야 할지, 이게 어떤 상황인지 감이 잡히지 않았다. 오랬동안 써왔던 서포트라이브러리에서 androidx로 이주(migration)가 진행중인 시기다. androidx에 대해서는 정리중이니, 추후에 게시하도록 하겠다! 이 글에서는 서포트 라이브러리 일부를 androidx로 migration했을 때의 결과를 기록하기 위해서 작성하는 것이다. 이미 androidx로의 대이주는 시작되었으니, 하루 빨리 익숙해지고 이유를 알아야겠다. gradle:app 에서의 dependencies가 다음과 같았을 때, implementation 'com.android.suppor..

    Android # 크기 표시 단위(px, dp, sp, em)

    크기 표시 단위(px, dp, sp, em) 단위 단위표현 설명 px 픽셀 화면 픽샐의 수 dp 밀도 독립적 픽셀(density independent pixel) 160dpi 화면을 기준으로 한 픽셀 sp 축척 독립적 픽셀(scale independent pixel) 텍스트 크기를 지정할 때 사용하는 단위. em 텍스트 크기 글꼴과 상관없이 동일한 텍스트 크기 표시 dp는 해상도에 비례하는 비슷한 크기로 보이게 할 때 사용한다. dp를 사용하면 해상도가 160dpi인 작은 화면에서는 20픽셀이던 버튼 크기를 320dpi인 약간 큰 화면에서는 40픽셀의 크기로 보애게 한다. 따라서, 해상도별로 일일이 크기를 다시 지정핮지 않아도 된다. dp는 뷰의 크기 뿐만 아니라 텍스트의 크기를 지정하는 데도 사용된다...

    Android # Constraint Layout(제약 레이아웃)

    Constraint Layout(제약 레이아웃) 제약 레이아웃의 가장 큰 특징은 뷰의 크기와 위치를 결정할 때, 제약 조건(Constraint)를 사용한다는 것. 제약 조건이란 뷰가 레이아웃 안의 다른 요소와 어떻게 연결되는지 알려주는 것. 뷰의 연결점(Anchor Point)과 대상(Target)을 연결. 마진(Margin) : 연결점과 타깃과의 거리를 나타냄. 가로 바이어스(Horizontal Bias)/ 세로 바이어스(Vertical Bias)를 사용하면 화면을 비율로 나눈 곳에 위치시킬 수 있음. 뷰를 담고 있는 부모 레이아웃 안에서 크기나 위치를 자유롭게 조절할 수 있음. 대상(Target)이 될 수 있는 것 같은 부모 레이아웃 안에 들어있는 다른 뷰의 연결점 부모 레이아웃의 연결점 가이드라인(..