상세 컨텐츠

본문 제목

[Android]XML 스타일 문자

Android 개발

by mobile 2013. 4. 21. 01:57

본문

반응형

자바에서 String 객체내 보관하는 문자열은 유니코드로 변형하여 보관하므로 HTML과 같이 마크업 문자를 입력하고 출력할 때 문제가 발생한다. String 객체에 입력되는 문자열은 마크업 문자를 입력하여 사용할 수 없는 문자열이란 의미로 변경금지 문자라 부른다. 따라서 String 객체에서 사용하는 문자열을 일반 문자열 또는 단순히 문자열이라 표현 한다.

반면에 CharSequence 객체내 보관하는 문자열 같은 String 클래스와 같은 유니코드라 하더라도 마크업 문자를 사용하여 변형과 가공이 가능한 문자열이란 의미로 스타일 문자 또는 연속된 문자라고 한다.


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    <TextView 

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="center_horizontal"

        android:text="@string/styled_text" />

    <TextView 

        android:id="@+id/styled_text"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="center_horizontal"

        android:textStyle="normal" />

    <TextView 

        android:id="@+id/plain_text"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="center_horizontal"

        android:textStyle="normal" />

    <TextView 

        android:id="@+id/res1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="center_horizontal"

        android:textStyle="normal" />

</LinearLayout>


<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="styled_text">평범(Plain), <b>강조 bold</b>, <i>이탤리체 italic</i>, <b><i>bold-italic</i></b></string>

</resources>


import android.app.Activity;

import android.content.Context;

import android.content.res.Resources;

import android.os.Bundle;

import android.widget.TextView;


public class Resources1 extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

TextView tv;

CharSequence cs;

String str;

// 문자 스타일의 손상이 되지 않도록 getText() 메서드를 사용하여 

// CharSequence 객체를 생성한다.

cs = getText(R.string.styled_text);

tv = (TextView)findViewById(R.id.styled_text);

tv.setText(cs);

// 문자를 getString() 메서드를 사용하여 읽는다.

str = getString(R.string.styled_text);

tv = (TextView)findViewById(R.id.plain_text);

tv.setText(str);

// 현재의 컨텍스트를 사용하여 리소스 객체를 만든다.

Context context = this;

Resources res = context.getResources();

// 이와 같이 리소스로부터 문자열을 읽는다.

cs = res.getText(R.string.styled_text);

tv = (TextView)findViewById(R.id.res1);

tv.setText(cs, TextView.BufferType.EDITABLE);

}

}




반응형

'Android 개발' 카테고리의 다른 글

[Android]시간 포맷 클래스  (0) 2013.07.13
[Android]자바 스타일 문자  (0) 2013.04.21
[Android]상태 리스트 모형  (0) 2013.04.20
[Android]Shape 요소  (0) 2013.04.20
[Android]비트맵 모형  (0) 2013.04.16

관련글 더보기

댓글 영역