Please Enable JavaScript!
Gon[ Enable JavaScript ]

Android(안드로이드) 에서 dialog 내용 폰트 변경하기

안드로이드 개발
반응형

Android(안드로이드) 에서 dialog 내용 폰트 변경하기

 

개발환경 : JDK 1.5, eclipse-galileo, Android API 2.1, window XP

 

dialog 에 폰트와 배경색등등을 입맛에 맞게 디자인 하고 싶은데

기본적으로 제공하는 dialog 생성 클래스로는 기본 옵션밖에 사용하지 못한다.

수정하고자 할때는 어떻게 해야할까? AlterDialog setView 함수를 이용하는

것이다. 대부분의 위젯 클래스들은 자기가 원하는 형태로 만든 View 화면을

통채로 집어넣을 수 있다.

다이얼로그 클래스도 마찬가지 인데 View 화면을 다양한 레이아웃으로 입맛에

맞게 구성한후 추가 하면 그대로 구현이 된다. 아래의 예제도 그렇게 구성한 것이다.

 

기본다이얼로그로 구성했을 때의 화면과 소스이다. 이것을 보면 폰트와 배경색을

수정하고 싶은 욕구가 치밀어 올라올 것이다.

그럼 그 치밀어 올라오는 욕구를 해결해 보자.

우선 setView xml 을 작성한다. 다이얼로그와 비슷한 형태로 만든다.

dlg_view.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp">
	<ImageView  
	    android:id="@+id/image"
	    android:layout_width="wrap_content" 
	    android:layout_height="wrap_content" 
	    android:src="@drawable/app_icon" />
	    
	<LinearLayout 
	    android:orientation="vertical"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content">
		<TextView android:id="@+id/title"
		    android:layout_width="wrap_content" 
		    android:layout_height="wrap_content" 
		    android:text="HelloAlert!"/>
		<TextView android:id="@+id/message"
		    android:layout_width="wrap_content" 
		    android:layout_height="wrap_content" 
		    android:paddingTop="10dip"/>
	</LinearLayout>
</LinearLayout>

그리고 소스를 추가한다. 폰트를 수정한다던지 색깔을 바꾸는 등의

기능이다.
// View 관련 데이타를 채운다
View view = this.getLayoutInflater().inflate(R.layout.dlg_view, null);
// 제목 넣기 
TextView txtTitle = (TextView) view.findViewById(R.id.title);
txtTitle.setTextSize(20);
txtTitle.setTextColor(Color.RED);
txtTitle.setText(title);
// 내용 넣기 
TextView message = (TextView) view.findViewById(R.id.message);
message.setTextSize(15);
message.setText(content);
		
AlertDialog.Builder alt = new AlertDialog.Builder(this);
alt.setView(view)
   .setCancelable(false)
   .setPositiveButton("확인",
	new DialogInterface.OnClickListener() {
		public void onClick(DialogInterface dialog, int id) {
			dialog.cancel();
		}
	});
			
AlertDialog alert = alt.create();
alert.show();

적용한 결과는 아래 그림과 같다. xml 에 내용을 바탕으로 제목의 색깔도 변경하고

내용의 폰트로 줄였다. 다음에는 TextView 대신 WebView 를 집어넣어서 글자들의

세부적인 디자인도 변경할수 있는 방법에 대해 기술해 보도록 하겠다.
반응형
Posted by 녹두장군1
,