저번 포스팅에서는 요소를 통해 단일 문자열 리소스를 추가하는 방법을 알아봤습니다. 이번 포스팅에서는 요소를 사용해 문자열 배열 리소스를 추가하는 방법을 살펴보겠습니다. 1. xml string 리소스 파일 추가 프로젝트를 생성하면 자동으로 생성되는 /res/values/string.xml 파일 안에 리소스를 추가를 해도 상관없지만 따로 xml 문자열 리소스 파일을 생성하여 추가하도록 하겠습니다. ▼ values 폴더를 우클릭하여 [New]-[values resource file]을 클릭합니다. 파일 이름을 mystring.xml로 지정하고 ok를 클릭하면 /values/ 경로에 mystring.xml 파일이 생성되는 것을 확인할 수 있습니다. 무궁화 장미 해바라기 ■ ~ - 안드로이드에서 리소스를 추가할..
만약 여러분들이 개발하는 앱이 한국시장을 넘어 외국시장도 노리고 있다면 앱은 다국어 지원이 가능해야 합니다. 다국어 지원이란 단말기에 설정된 국가 언어에 따라 해당 국가 언어로 문자열이 바뀌는 것을 의미합니다. 안드로이드에서 다국어를 지원하기 위해서는 문자열 리소스를 활용해야 합니다. 이번 포스팅에서는 간단하게 한국어와 영어를 동시에 지원하는 앱을 만들어보겠습니다. 1. 한국어 문자열 리소스 추가 먼저 한국어를 지원하기 위해서는 한국어 전용 문자열 리소스 폴더를 생성합니다. ▼ 먼저 /res/ 경로에 문자열 리소스 폴더를 생성해줍니다. res 폴더를 우 클릭하여 [New]-[Directory]를 클릭하고 폴더 이름을 지정해주고 OK버튼을 클릭합니다. ▼ 여기서 폴더명은 반드시 values-ko와 같이 v..
1. 문자열 리소스 - /res/values/Strings.xml 안드로이드 프로젝트를 생성하게 되면 /res/values/ 경로 아래에 strings.xml이라는 xml 리소스 파일을 확인할 수 있습니다. ▼ 해당 파일은 프로젝트 생성당시에 default로 생성되는 xml 리소스 파일입니다. 이미 app_name이라는 이름을 가진 문자열 리소스가 정의되어 있습니다. 각 태그 요소와 xml 리소스 작성방법에 대해 살펴보겠습니다. ● 요소 xml 리소스를 추가하는데 있어서 필수로 들어가는 루트 요소입니다. 반드시 추가하는 리소스는 ~ 내부에 작성되어야 합니다. ● 요소 단일 문자열 리소스를 추가할 때 사용하는 요소입니다. 반드시 name 속성값을 지정해야 하며 name 속성값은 문자열의 이름이자 다른 곳에..
안드로이드 이미지뷰(ImageView)를 사용하면 화면에 이미지 파일을 출력할 수 있습니다. 안드로이드 앱에서는 TextView와 더불어 그 활용도가 높은 뷰(View)입니다. 1. Drawable 리소스에 이미지 등록하기 ImageView에 이미지 파일을 출력하기 위해서는 먼저 안드로이드 프로젝트 안에 Drawable 리소스에 이미지 리소스가 등록되어 있어야 합니다. Drawable 리소스 등록 방법은 여러 가지가 있지만, 이미지 파일을 복사(Ctl + C) 후에 app\src\main\res\drawable 경로에 복사해주는 방법이 가장 간단합니다. ▼ 파일을 복사하기를 하면 이름을 지정하라고 합니다. 이때 지정하는 이름은 확장자를 제외한 이름이 리소스 ID로 지정되며 특수문자나 대문자 사용을 피해서..
안드로이드 TextView는 화면에서 Text를 표시할 때 사용하는 뷰 위젯입니다. Button 과 EditText의 부모 클래스이기도 한 TextView는 사용법은 간단하지만 부모 클래스인 View 클래스로부터 상속받는 다양한 속성과 자기 자신이 가지는 다양한 속성들로 인해 자유자재로 다루는데는 시간이 걸립니다. 1. TextView 화면에 배치하기 ▼ TextView를 화면에 배치하는건 간단합니다. 심지어는 안드로이드 프로젝트를 처음 만들었을 때 생기는 Activity의 xml 레이아웃 리소스에서도 익숙하게 보셨을 겁니다. TextView의 Text 속성에 화면에 표시하고자 하는 문자열을 속성값으로 지정하게 되면 해당 속성값이 화면에 표시가 됩니다. 2. 자바 소스에서 TextView의 Text 지정..
App 사용자의 일련의 행동에 대해 반응하고 특정한 기능을 수행하는 것을 이벤트를 처리한다는 또는 이벤트를 핸들링한다고 말합니다. 대표적으로 Button 클릭 이벤트가 있습니다. 사용자가 Button을 클릭하면 구현된 기능을 수행하죠. 이를 Button 클릭 이벤트를 처리한다고 말합니다. 안드로이드에서는 특정 이벤트 처리를 리스너(Listener)를 구현함으로써 처리할 수 있습니다. 특정 뷰(View)에 대해 이벤트가 발생하고 등록된 리스너의 오버라이딩 된 약속된 Method를 호출함으로써 이벤트를 처리하는 방식인 거죠. 이번 포스팅에서는 이벤트를 처리하기 위한 여러 방법에 대해서 알아보도록 하겠습니다. 1. 공통 예제 레이아웃 형태. 버튼 이벤트 처리에 대한 예제는 동일한 기능을 수행하는 App을 기반..
자바에서 익명 클래스(Anonymous Class)를 사용하는 방법에 대해 알아보겠습니다. interface Number { public void DisplayNumber(); } ▼ 여기 Number Interface 하나가 있습니다. Number Interface를 상속받아 구현하는 Class는 DisplayNumber() Method를 구현하도록 강제합니다. public class Display { private Number number; public Display(Number object) { this.number = object; } public void display() { this.number.DisplayNumber(); } } ▼ Display Class를 정의하였습니다. Display ..
안드로이드 에디트텍스트(EditText)는 TextView로부터 파생된 클래스로 TextView는 단순히 Text를 보여주는 역할을 한다면 EditText는 Text를 입력 및 수정까지 가능한 뷰(View) 위젯입니다. 1. EditText 기본 사용법 EditText를 화면에 배치하는 방법은 간단합니다. 레이아웃 리소스 XML에서 사이에 EditText의 속성을 정의하면 됩니다. ▼ App을 실행하면 EditText가 화면에 배치된 것을 확인할 수 있습니다. Layout 리소스 xml에서 EditText의 Text 속성값을 "Sample EditText"로 지정하였기 때문에 초기 App 실행 시점의 Text영역에는 "Sample EditText"가 나타납니다. EditText를 클릭하면 Text 입력기..
StringTokenizer 클래스는 특정 문자열을 구분자를 통해 잘라서 관리할 수 있는 클래스입니다. 구분자를 통해 잘려진 문자를 토큰(Token)이라 부르며 이를 통해 다양한 작업을 처리할 수 있습니다. 1. 생성자 (Constructor) StringTokenizer(String str) 나누고자 하는 문자열을 인자로 가지는 생성자 StringTokenizer(String str, String delimeter) 나누고자하는 문자열과 문자열을 나눌 때 사용 할 구분자(Delimeter)를 인자로 가지는 생성자 StringTokenizer(String str, String delimeter, boolean return delime 나누고자하는 문자열과 문자열을 나눌 때 사용 할 구분자(Delimete..
GridLayout은 2차원 격자무늬 형태의 레이아웃으로 행과 열의 집합형태로 구성된 레이아웃입니다. TableLayout의 단점을 보완한 레이아웃으로 LinearLayout 또는 FrameLayout과 같은 다른 레이아웃의 장점을 포함하는 레이아웃입니다. GridLayout을 사용할 시 다른 레이아웃과 중첩으로 사용할 필요가 없어 메모리 사용량을 줄일 수 있다는 장점이 있습니다. 1. GridLayout 속성 - orientation / rowCount / columnCount 속성 설명 orientation 자식 뷰(View)들이 GridLayout의 각 셀 영역에 배치되는 방향을 결정합니다. orientation = "horizontal" : 수평방향으로 뷰(View)를 정렬합니다. orientat..
안드로이드 4대 구성요소(Component)는 엑티비티(Activity), 서비스(Service), 콘텐트 제공자(Content Provider), 방송수신자(Brodcaster Receiver)로 이루어져 있습니다. 각각의 구성요소(Component)는 독립된 형태로 존재하며 각자가 고유의 기능을 수행하며 중간에 인텐트(intent)를 통해 상호작용을 합니다. 이번 포스팅에서는 4대 구성요소의 전체적인 개념에 대해서만 정리하고 각 구성요소에 대해서 자세한 내용을 포스팅하도록 하겠습니다. 1. 엑티비티 (Activity) 엑티비티(Activity)는 사용자 화면을 담당하는 구성요소입니다. App에서 엑티비티를 구현하기 위해서는 Activity Class를 상속받아야 하며 Activity 생명주기(Life..
이번 포스팅은 LinearLayout과 RelativeLayout에 이어 FrameLayout에 대해 알아보겠습니다. FrameLayout은 여러 개의 뷰를 중첩으로 배치하고 그중 하나를 레이아웃의 전면에 표시할 때 사용하는 레이아웃입니다. ▼ FrameLayout의 Frame의 '액자'를 의미합니다. '액자'를 FrameLayout과 연관지어 생각해본다면 FrameLayout의 배치기능을 이해하는 데 도움이 됩니다. 액자에 여러 장의 같은 크기의 사진을 끼워 넣는다고 가정을 하였을 때 먼저 들어간 사진의 경우는 나중에 들어간 사진에 의해서 가려져서 보이지 않습니다. 마찬가지로 FrameLayout과 연결시켜 생각해보면 FrameLayout에 여러개의 같은 크기를 가지는 뷰(View)를 배치하였을 때 가..
RelativeLayout은 자식 뷰 또는 부모 뷰 간의 관계에 따라 배치를 적용하는 레이아웃입니다. 1. RelativeLayout의 기본속성 - gravity 속성과 ignoregravity 속성 속성 설명 gravity RelativeLayout의 자식 뷰들의 중력방향을 결정합니다. ignoregravity gravity 설정 상태에서 특정 자식 뷰에 대해 gravity 속성을 무시합니다. ▼ RelativeLayout을 최상단에 배치하고 그 아래 Button 뷰 2개를 배치하였습니다. RelativeLayout 의 속성 gravity를 "bottom"으로 지정하였기 때문에 하위 뷰들은 하단에 배치가 되야합니다. 다만 ignoreGravity 속성의 속성값으로 id 속성값이 button1인 뷰를 지..
안드로이드(Android) 앱을 개발하기 위해서는 반드시 화면이 필요합니다. 그리고 화면에 보이는 구성 요소들은 모두 뷰(View)라고 부릅니다. 우리가 흔히 보는 Button, TextBox, Image 등은 모두 뷰(View)이며 이러한 구성요소들이 모여 하나의 화면을 이루게 됩니다. 그렇다면 뷰(View)는 화면 어디 간에 배치가 되어야 하는데 뷰(View) 자체로는 자신이 어디에 배치되어야 하는지에 대한 정보를 가지고 있지 않습니다. 따라서 뷰(View)를 화면에 배치할 수 있는 무언가가 필요하며 그 역할을 하는것이 뷰 그룹(View Group) 또는 뷰 컨테이너(View Container)입니다. View Group은 연관된 여러 개의 View를 포함할 수 있으며 1개의 View는 반드시 하나의..
안녕하세요. 이번 포스팅에서는 제이쿼리(jquery) 선택자 중 직접 선택자에 대해서 알아보도록 하겠습니다. 선택자는 HTML 요소를 선택하여 가져옵니다. jquery에서 선택자는 CSS와 마찬가지로 가져온 요소의 스타일을 변경하는 데 사용됩니다. 다만 차이점은 CSS로 스타일을 적용하는 경우는 사용자의 동작에 의해 동적으로 스타일을 변경하는 게 불가능합니다. 하지만 jquery의 선택자를 이용하면 HTML의 요소들을 사용자의 동작에 맞게 동적으로 스타일을 변경하는 것이 가능합니다. jquery 선택자도 CSS 선택자와 마찬가지로 다양한 종류의 선택자를 제공하고 있습니다. 직접선택자를 시작으로 하나씩 알아보도록 하겠습니다. 1. 전체 선택자 전체 선택자는 HTML 요소 전체를 선택하는 선택자(Select..