전체 글

전체 글

    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)이 될 수 있는 것 같은 부모 레이아웃 안에 들어있는 다른 뷰의 연결점 부모 레이아웃의 연결점 가이드라인(..

    Android # View 와 View group

    View와 View group 뷰(View)의 속성 뷰는 일반적으로 컨트롤이나 위젯으로 불리는 UI 구성 요소. 즉, 사용자의 눈에 보이는 화면의 구성 요소. 뷰를 여러 개 포함하고 있는 것을 뷰그룹(View Group)이라고 하고, 이 뷰그룹 안에서 뷰의 위치를 지정할 수 있음. 뷰그룹은 여러 개의 뷰를 담고 있는 그릇과 같아서 뷰와는 다른 것. 또 다른 뷰그룹을 뷰그룹 안에 넣고 다른 뷰와 동일하게 다루도록 만들 수도 있음. 이 때문에, 뷰그룹은 뷰를 상속하여 뷰그룹도 뷰처럼 다룰 수 있도록 만들어져 있음. 뷰와 뷰그룹의 관계는 여러 가지 디자인 패턴 중에 컴포지트 패턴(Composite Pattern)을 사용하여 만들어짐. 컴포지트 패턴으로 만들어지는 뷰그룹은 뛰어난 확장성을 가짐. 다음은, 대표적..

    Android # 단축키 및 팁

    ctrl + shift + F 프로젝트 파일 전체를 검색한 후 결과를 보여줌. (찾는 코드로 이동 가능) xml 청사진(Blueprint) 모드 디자인 화면에 들어 있는 버튼이나 텍스트가 서로 겹쳐진 상태면 눈으로 보는 것과 달리 화면 배치가 더 복잡할 수 있음. 실제로 앱을 만들다 보면 화면 구성 요소가 많아져 디자인 화면에서 확인한 화면과 실제 화면이 다른 경우가 많음. 청사진 모드로 보면 화면에 들어있는 요소들이 겹쳐있어도 그 모양을 확인할 수 있음.

    Android # Hello Project

    Android 기본 실습 Button 생성 및 Button을 눌렀을 때, Action 구현하기. 버튼1 : Toast 메시지 띄우기 버튼2 : 웹브라우저 실행 버튼3 : 전화걸기 화면 실행 화면구성 [activity_main.xml] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 Colored by Color Scripter cs [MainActivity.java] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..