Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(android) 다이얼로그에 들어가는 text 폰트 조정 방법

안드로이드 개발
반응형

안드로이드(android) 다이얼로그에 들어가는 text 폰트 조정 방법

 

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

 

안드로이드에서 다이얼로그를 기본옵션으로 생성하게 되면 폰트는 항상 일정하다.

다양한 디자인적 요소를 적용하고 싶을때 어떻게 해야할까?

다이얼로그에 데이타를 집어넣을때 Text 만 넣는게 아니라 TextView 위젯에

데이타를 셋팅한후 다이얼로그에 넣으면 된다.

이번 예제는 다이얼로그에 setAdapter 함수를 통해 ArrayAdapter 객체를

넘겨주게 된다. 그전에 ArrayAdapter 클래스로 문자열을 특정 레이아웃에

셋팅한다. 그 레이아웃은 TextView 위젯만 포함되어있으며 TextView 옵션을

조정하게 되면 입력한 텍스트를 원하는 형태로 변형할수 있다.

그 레이아웃의 내용은 다음과 같다.


<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dip" 
    android:layout_margin="5dip" 
    android:gravity="center_vertical" 
    android:textSize="15dip" 
    android:textColor="#b6283c99" 
    android:typeface="normal" 
    android:lineSpacingExtra="0dip"/>

위의 레이아웃을 셋팅하는 코드이다.

ArrayAdapter<CharSequence> itemsAdapter = new 
	ArrayAdapter<CharSequence> (this, R.layout.menu_items, itemsMark);

이 내용을 적용한 화면이다. TextView 에 옵션값이 반영된 것이다.

 

전체소스  

 

위 예제의 전체 소스이다.

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;

import com.sample.R;

public class DialogFont extends Activity implements View.OnClickListener{
	
	private Button mBtnFont = null;
	private final int DIALOG_FONT = 1;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_font);
        
        mBtnFont = (Button)findViewById(R.id.btn_font);
        mBtnFont.setOnClickListener(this);
    }

    @Override
    protected Dialog onCreateDialog(int id) {
    	final CharSequence[] itemsMark = 
		{getResources().getString(R.string.mark_as_beautiful), 
		                  getResources().getString(R.string.mark_as_fun), 
		                  getResources().getString(R.string.mark_as_not_a_portrait), 
		                  getResources().getString(R.string.mark_as_offensive), 
		                  getResources().getString(R.string.mark_as_spam), 
		                  getResources().getString(R.string.mark_as_cancel) 
		}; 
    	ArrayAdapter itemsAdapter = new 
		ArrayAdapter (this, R.layout.menu_items, itemsMark); 
    	
        switch (id) {
        case DIALOG_FONT:
            return new AlertDialog.Builder(DialogFont.this)
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle("My Title")
                .setAdapter(itemsAdapter, new DialogInterface.OnClickListener() 
                { 
				    public void onClick(DialogInterface dialog, int item) { 
				        switch(item) { 
			                case 0: 
			                	//Mark as Beautiful 
			                	break; 
			                case 1: 
			                    //Mark as Beautiful 
			                	break; 
			                case 2: 
			                	//Mark as Not a Portrait 
			                	break; 
			                case 3: 
			                    //Mark as Offensive 
			                	break; 
			                case 4: 
			                    //Mark as Spam 
			                	break; 
			                case 5: 
			                    //cancel 
			                	break; 
				        } 
				    } 
                })
                .create();
        }
        return null;
    }
	/* (non-Javadoc)
	 * @see android.view.View.OnClickListener#onClick(android.view.View)
	 */
	public void onClick(View v) {
		switch(v.getId()){
		case R.id.btn_font:
			showDialog(DIALOG_FONT);
			break;
		}
	}
}
반응형
Posted by 녹두장군1
,