본 글은 [깡샘의 안드로이드 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다.
좀더 자세한 내용은 책을 통해 확인해 주세요.
3장. 사용자 인터페이스
Step by Step 실습 3-4 : TextView 활용
앞에서 설명한 TextView의 속성들을 실습해보겠습니다.
Step 1 _ 액티비티 추가
part2-3 모듈에 새로운 액티비티를 "Lab3_4Activity" 이름으로 추가합니다. 액티비티를 생성할 때 'Launcher Activity' 체크박스를 체크하고 Source Language는 Java로 설정합니다.
Step 2 _ assets 폴더 생성
사용자 임의의 폰트 파일을 적용하기 위해 ttf 파일을 이용할 건데요. ttf 파일은 assets 폴더에 위치해야 합니다. assets 폴더는 모듈을 생성할 때 자동으로 만들어지지 않습니다. part2-3 모듈명을 선택하고 마우스 오른쪽을 누른 다음, [New → Folder → Assets → Folder] 메뉴를 이용해 추가합니다
assets 폴더를 만들면 다음 그림처럼 컴포넌트 설정 창이 열리는데, assets 폴더는 폴더명이 "assets"으로 고정되어
있습니다. 따라서 <Finish>만 누르면 됩니다.
Step 3 _ ttf 파일 준비
방금 생성한 assets 폴더에 ttf 파일을 복사합니다. ttf 파일은 필자가 제공하는 파일(xmas.ttf)을 이용해도 되고, 임의의 ttf 파일을 인터넷에서
내려받아 이용해도 됩니다.
Step 4 _ strings.xml 추가
TextView에 출력할 긴 문자열이 필요한데, 레이아웃 XML 파일에 직접 긴 문자열을 작성하지 않고, 문자열 리소스로 등록하여 이용하겠습니다. 문자열 리소스 등록은 res/values/strings.xml 파일을 이용합니다. 모듈을 만들 때 기본으로 만들어지는 파일입니다. 화면에 몇 줄 정도 나오는 긴 문자열을 하나 등록했다고 생각하면 됩니다.
<resources>
<string name="app_name">Part2-3</string>
<string name="long_text">
야 뽀로로다 노는게 제일 좋아. 친구들 모여라. 언제나 즐거워 개구쟁이 뽀로로. 눈덮힌 숲속
마을 꼬마펭귄 나가신다. 언제나 즐거워 오늘은 또 무슨일이 생길까. 뽀로로를 불러봐요. 뽀롱뽀롱 뽀로로
뽀롱뽀롱 뽀로로. 뽀롱뽀롱 뽀롱뽀롱 뽀롱뽀롱 뽀롱 뽀로로. 노는게 제일 좋아 친구들 모여라. 언제나
즐거워 뽀롱뽀롱 뽀롱뽀롱 뽀로로.
</string>
</resources>
Step 5 _ 이미지 리소스 복사
화면에 출력할 이미지를 하나 준비해서 r e s /d r a w a b l e 폴더에 복사해놓습니다. 필자가 제공하는 샘플 이미지(sample.png)를 이용해도
되고, 인터넷에서 구한 이미지를 이용해도 됩니다(단, 필자가 제공하는 코드에 맞추고자 이미지 파일명은 "sample"로 지정하기 바랍니다). 그리고 이미지 크기는 화면에 보일 정도의 작은 이미지를 이용합니다. 필자는 500x300 정도의 이미지를 이용했습니다.
Step 6 _ activity_lab3_4.xml 작성
activity_lab3_4.xml 파일을 열어서 소스를 다음과 같이 작성합니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- autoLink Test-->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="가나다라 http://www.google.com 마바사 a@a.com 아자차카타 1234-5678"
android:autoLink="web|email|phone"/>
<!-- maxLines, ellipsize Test-->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/long_text"
android:layout_marginTop="16dp"
android:ellipsize="end"
android:maxLines="3"/>
<!-- Custom Font Test -->
<TextView
android:id="@+id/fontView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Custom Font"
android:layout_marginTop="16dp"/>
<!-- ImageView maxWidth, maxHeight Test-->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/sample"
android:maxWidth="100dp"
android:maxHeight="100dp"
android:adjustViewBounds="true"
android:layout_marginTop="16dp"/>
<!-- inputType Test-->
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:hint="전화번호 입력"
android:layout_marginTop="16dp"/>
<!-- CheckBox Test-->
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="is unChecked"
android:layout_marginTop="16dp"/>
</LinearLayout>
Step 7 _ Lab3_4Activity.java 작성
Lab3_4activity 파일을 열어서 소스를 다음과 같이 작성합니다.
public class Lab3_4Activity extends AppCompatActivity {
CheckBox checkBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lab3_4);
//Custom Font 적용
TextView textView=findViewById(R.id.fontView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "xmas.ttf");
textView.setTypeface(typeface);
//CheckBox 이벤트 프로그램
checkBox=findViewById(R.id.checkbox);
checkBox.setOnCheckedChangeListener(new CompoundButton. OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
checkBox.setText("is Checked");
}else {
checkBox.setText("is unChecked");
}
}
});
}
}
Step 8 _ Lab3_4Activity.java 실행
Lab3_4Activity.java 파일에 마우스 오른쪽을 누르고, [Run 'Lab3_4Activity] 메뉴로 실행합니다.
'Android' 카테고리의 다른 글
[깡샘의 안드로이드 프로그래밍] 정리 7 - Vibration (0) | 2018.01.05 |
---|---|
[깡샘의 안드로이드 프로그래밍] 정리 6 - Relative Layout (0) | 2018.01.05 |
[깡샘의 안드로이드 프로그래밍] 정리 4 - TextView (0) | 2018.01.05 |
[깡샘의 안드로이드 프로그래밍] 정리 3 - View 기초 속성 (0) | 2018.01.05 |
[깡샘의 안드로이드 프로그래밍] 정리 2 - build.gradle (0) | 2018.01.05 |