Basic Widget

1. TextView

String을 화면에 나타내기 위한 Widget으로 Text의 색, 크기, 폰트 등을 설정할 수있으며 String은 리소스에 정의된 값을 읽어와 사용한다,

HTML class를 이용하여 HTML형식의 Text로 표한 가능

- text 

  -> 텍스트 뷰에 보이는 문자열을 설정할 수 있음

- textColor 

  -> 텍스트뷰에서 표시하는 문자열의 색상을 설정함

- textSize 

  -> 텍스트뷰에서 표시하는 문자열의 크기를 설정함

- textStyle 

  -> 텍스트뷰에서 표시하는 문자열의 스타일 속성을 설정함

- typeFace 

 -> 텍스트뷰에서 표시하는 문자열의 폰트를 설정함

- singleLine 

 -> 텍스트 뷰에서 표시하는 문자열이 한줄로만 표시되도록 설정함

- ellipsize 

 -> Text의 길이가 View의 크기보다 클 경우 처리 방식을 설정

- width, height, maxWidth, minWidth, maxHeight, minHeight

 -> View의 크기를 dp,sp,px로 나타냄

- ems, maxEms, minEms

 -> em을 기준으로 View Width 크기

 -> em은 폰트의 기본크기를 기준으로 한 크기

- lines, maxLines, minLines

 -> Line을 기준으로 한 View의 Height 크기

- gravity 

 -> 텍스트 뷰 내에서 텍스트의 정렬값을 지정

- lineSpacingExtra, lineSpacingMultiplier 

 -> 줄간 여백을 설정함

- letterSpacing 

 -> 글자간 간격

- autoLink, linksClickable

 -> link를 자동으로 표시하고 클릭할수있게 해주는 속성

- textlsSelectable

 -> 텍스트 내에서 선택이 가능하게 하는 속성


2. Button

사용자가 선택을 할 때 사용하는 Widget으로 Background에 selector를 설정하여 상태에 따라 다른 이미지를 보여주도록 만들 수 있다

- 버튼은 TextView를 상속받은 class로 TextView와 동일한 속성을 가지면 TextView의 background에 selector라고 하는 상태에 따라 다른 이미지를 보여주는 리소스를 설정하여 버튼처럼 보이도록 만든다

- selector를 만들기 위해서는 우선 버튼이 눌렸을 때와 눌리지 않았을 때 이미지가 필요

- 리소스에 이미지를 추가하기 위해서는 우선 drawable 디렉토리르 생성

- Android를 Project로 변경하고 app->src->main->res에서 New-> Android resource directory를 선택

- New Resource Directory에서 Resource type을 선택하고 drawable로 하고 Avilable qualifiers에서 Desity를 선택한 다음 X-High Density를 선택

- Selector를 생성하기 위해서는 res/drawable 에서 New->Drawable resource file 선택

- file name으로 button_selector라고 적고 Root Element는 selector를 선택

- 안드로이드에서는 색깔을 가지고 이미지처럼 만들어서 사용할 수 있도록 기능 제공



3. CompoundButton

선택 또는 취소를 나타내는 Widget으로 CheckBox, RadioButton, Toggle, Switchr 가 있다.

-CheckBox는 예/아니오를 나타내기 위해 사용하는 Widget이다



'Develop > Android' 카테고리의 다른 글

Layout 종류  (0) 2018.08.29
Layout 종류  (0) 2018.08.28
안드로이드 다국어 설정  (0) 2018.08.22
안드로이드 스튜디오 cannot resolve symbol r  (0) 2017.08.18
[Android] Activity 화면 전환  (0) 2017.01.03

Layout 종류


1.     GridLayout

n  행과 열로 이루어진 격자 모양으로 위젯을 배치할 수 있도록 하는 레이아웃

n  API14부터 제공

n  Gridlayour-v7을 이용하여 하위버전에서도 사용가능

n  GridLayout내에 위젯을 배치하면 orientation에 의해 자동으로 가로 또는 세로로 우선 배치되고 가로 또는 세로의 개수는 columnCountrowCount로 설정할 수 있다.

n  위젯은 layout_column layout_row로 원하는 위치를 지정할 수 있고, layout_gravity로 정렬 방식을 지정할 수 있다.

n  위젯은 layout_columnSpanlayout_rowSpanCell간 합치기를 할 수 있있다.

n  API21부터는 layout_columnWeight, layout_rowWeight를 제공한다.

 

-       테이블 레이아웃

n  행과 열로 이루어진 격자 모양으로 위젯을 배치할 수 있도록 함

n  각 칼럼은 위젯의 크기에 따라 늘어나거나 줄어들 수 있음

n  테이블 레이아웃은 테이블로우(TableRow)와 함께 사용됨

n  테이블 레이아웃은 하나의 행에 테이블로우 하나를 넣을 수 있으므로 여러 개의 테이블로우가 들어갈 수 있도록 함

n  각각의 위젯들은 테이블로우 안에 포함되어 테이블 레이아웃에 추가됨

n  칼럼의 수는 들어가는 위젯에 따라 자동으로 결정됨


2.     FrameLayout

n  FrameLayoutChild View를 겹쳐서 보여줄 수 있는 Layout이다.

n  FrameLayout에 배치된 Child Viewlayout_gravity를 이용하여 화면의 상단, 하단, 중앙 등에 배치 할 수 있다.

n  Child Viewlayout의 특정 위치에 배치하고자 하는 경우에도 FrameLayout을 사용한다. FrameLayoutlayout_margin_leftlayout_margin_top을 이용하여 x,y의 위치에 배치한다.

n  FrameLayoutTab등의 container로 사용되거나, Fragkment를 배치하기 위한 Layout으로 자주 사용된다.


3.     ScrollView

n  LinearLayout과 같은 Layout 이나 ImageView, TextView 와 같은 Widget들은 내부적으로 Scroll을 가지고 있지 않다.

n  View내부에 Content가 화면의 크기보다 큰 경우, Scroll을 하여 Content를 보여주기 위해서 ScrollView가 사용된다.

n  ScrollView는 내부에 오직 1개의 Child View만을 가져야 한다

  n수평방향 스크롤의 경우 HorizontalScrollView를 사용한다.


'Develop > Android' 카테고리의 다른 글

Basic Widget  (0) 2018.08.30
Layout 종류  (0) 2018.08.28
안드로이드 다국어 설정  (0) 2018.08.22
안드로이드 스튜디오 cannot resolve symbol r  (0) 2017.08.18
[Android] Activity 화면 전환  (0) 2017.01.03

Layout의 종류

1.     Layout의 종류

n  대표적인 레이아웃

레이아웃 이름

설명

리니어 레이아웃

- 박스 (Box) 모델

- 사격형 영역들을 이용해 화면을 구성하는 방법

- 표준 자바의 BoxLayout과 유사

상대 레이아웃

- 규칙(Rule)기반 모델

- 부모 컨테이너나 다른 뷰와 상대적 위치를 이용해 화면을 구성하는 방법

프레임 레이아웃

- 중복 배치 모델

- View를 동일한 위치에 중복하여 배치할 가능

- margin gravity를 이용하여 View를 특정한 위치에 배치 가능

- FragementVisibility를 이용한 View Change등에 주로 사용

그리드 레이아웃

- 격자(Grid) 모델

- 격자 모양의 배열을 이용하여 화면을 구성하는 방법

- HTML에서 많이 사용하는 정렬 방식과 유사하여 실용적임

스크롤 뷰

- 스크롤이 가능한 컨테이너

- 뷰 또는 뷰그룹이 들어갈 수 있으며 화면 영역을 너어갈 때 스크롤 기능 제공

 

2.     LinearLayout

n  속성

ü  채우기(fill model)
->
뷰를 부모 뷰의 여유 공간에 어떻게 채울 것인지 설정함

ü  방향(orientation)
->
뷰를 추가하는 방향을 설정함

ü  정렬방향(gravity)
->
뷰의 정렬 방향을 설정함

ü  여유 공간(margin)
->
뷰의 여유 공간을 설정함

ü  공간가중치(weight)
->
뷰가 차지하는 공간의 가중치 값을 설정함

n  정렬 방향 설정하기

ü  두 가지 정렬 속성

정렬 속성

설명

Layout_gravity

부모 컨테이너의 여유 공간에 뷰가 모두 채워지지 않아 여유 공간안에서 뷰를 정렬 할 때

gravity

뷰에서 화면에 표시하는 내용물을 정렬할 때(텍스트 뷰의 경우 내용물은 글자가 되고 이미지뷰의 경우 내용물은 이미지가 됨)

 

- layout_gravity

è  뷰의 layout_widthlayout_height 속성을 wrap_content로 할 경우에 같이 사용할 수 있음

n   공간가중치 설정하기

ü  Layout_weight 속성

è  LinearLayout Child를 배치하고 남은 여백을 어떻게 배치할 것인가를 설정

è  Layout_weight가 설정되어 있는 child간 값의 비율로 여백을 분배

è  Layout_wegiht는 여백을 나눠가지는 비율이지 child view간의 상대적 크기가 아님

3.     RelativeLayout

ü  부모 컨테이너나 다른 위젯들과 상대적 위치를 이용하여 배치하는 레이아웃

ü  다른 widget의 정보를 기준으로 내 위치를 결정하는 방식으로 ChildParent나 다른 Child의 위치를 기준으로 내 위치를 결정하고 align을 맞춰 크기를 결정한다.


'Develop > Android' 카테고리의 다른 글

Basic Widget  (0) 2018.08.30
Layout 종류  (0) 2018.08.29
안드로이드 다국어 설정  (0) 2018.08.22
안드로이드 스튜디오 cannot resolve symbol r  (0) 2017.08.18
[Android] Activity 화면 전환  (0) 2017.01.03

안드로이드 다국어 설정 방법


다국적 안드로이드 앱을 만들기 위해서는 다국어 지원이 필수이다.


해당 다국어 설정 방법은 안드로이드 기기에 셋팅된 언어에 따라 언어를 커스터마이징 하여 출력하는 방법이다.



res/values 에서 새로운 values resource file을 만들어준다.




Locale 선택 후





다국어 지원을 하고자 하는 xml과 file name 을 같게 하여 입력 하고 지원 하고자 하는 언어를 선택한다

여기서 Directory name 을 보면 values-ko 로 되어있는데 ko는 대한민국의 국가 코드 이다.




실행을 하고 각각 만든 xml 두개의 파일에서 언어부분만 커스터 마이징하여 적어주면


안드로이드 기기에 셋팅된 언어 설정에 따른 다국어 지원이 가능해진다.




'Develop > Android' 카테고리의 다른 글

Layout 종류  (0) 2018.08.29
Layout 종류  (0) 2018.08.28
안드로이드 스튜디오 cannot resolve symbol r  (0) 2017.08.18
[Android] Activity 화면 전환  (0) 2017.01.03
[Android] 프로젝트 생성 및 에뮬레이터 실행  (0) 2016.12.23

File > Invalidate Caches / Restart > Invalidae and Restart

Clean이랑 Rebuild 해봐도 에러 해결이 안된다.

하지만 Invalidate Caches 한 방이면 해결이 된다.



If you see this error after moving java files or directories to other locations, then you can guarantee that Android Studio has gotten confused. And guess what? undo-ing those actions doesn't fix the problem.

So you try a clean, but that doesn't work.

And restarting doesn't work either.

But try File -> Invalidate Caches / Restart... -> Invalidate and Restart.

Android Studio maintains information about which files are dependent on which other files. And since moving files around is not implemented correctly, moving files causes errors. And that's not all: caches of these dependencies are used in an attempt to speed up the build.

This means you not only have to restart, but you need to invalidate those caches to restore (or more accurately, rebuild) sanity.

Android Activity 화면 전환

 

새로운 화면을 생성하여 화면 전환을 해보고자 합니다..

 

1. 새로운 프로젝트를 생성하면 아래와 같은 구조로 생성됩니다.

 

2. 자동으로 생성된 AndroidManifest.xml

 

3. 우측마우스를 클릭하여 New > Activity > Empty Activity

   (Activity 종류는 하고싶은걸로 하시면 됩니다.)

 

4. Activity Name 은 SubActivity 로 생성했네요. (Finish)

 

5. AndroidManifest.xml 에 자동으로 SubActivity가 추가되었습니다.

 

6. 두번째 화면의 xml에 간단하게 TextView를 추가 했습니다.

 

7. 첫번째 화면에는 버튼을 추가했습니다. 버튼 클릭시 두번째 화면으로 이동하게 하기 위해서요.

 

8. 첫번째 화면의 MainActivity.java 파일에 버튼 클릭시 두번째 화면으로 이동되는 소스를 삽입합니다.

(버튼 클릭 이벤트 방법은 여러가지가 있습니다.)

 

9-1. 실행해 보겠습니다. 갤럭시S3 공기계에 테스트 하였습니다.

  두번째 화면으로 이동하기 버튼을 터치하면 화면이 전환됩니다.

 

 

9-2 화면 전환됨.

 

끝.

 

 

Android 프로젝트 생성 및 에뮬레이터 실행

 

1. Andorid Studio 실행 (첫 실행이라 그런지 아래와 같은 화면이 출력됨)

 

2. 입맛대로 하시면 될듯 저는 Custom

 

3. Darcula 로 선택했어요.

 

4. 피시에서 사용하는 에뮬레이터가 필요하면 아래 'Android Virtual Device' 체크 후 Next

 

 

6. Start a new Android Studio project

 

7. Application name : 어플 이름 입력

   Company Domain : 어플이름이 같을경우 도메인으로 구분하기 위해 (아마도 맞을거에요 ㅎㅎ)

   Project location : 프로젝트 파일 경로

 

8. Phone and Tablet 전용 어플을 만들거니 그것을 선택하고 Next

 

9. 최초 생성되는 Activity 형태 선택 후 Next

 

10. 적당한 이름 입력 후 Finish

 

11. 삼각형 모양 클릭 (가상 Android 기기 실행)

 

12. 상당히 오래 기다리면 아래와 같은 화면이 출력되면 성공 (저는 5분 정도 기다린듯 ㅎㅎ)

Android 스튜디오 다운로드 및 설치

 

저는 이상하게 IE로 하니깐 진행이 안되서, 크롬으로 진행 했습니다.

 

1. 다운로드 사이트 접속 : https://developer.android.com/studio/index.html

 

 

 

2. 동의 후 다운로드

 

 

 

3. 설치 진행 (모두 디폴트로 진행)

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts