반응형
개발환경 : 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) }; ArrayAdapteritemsAdapter = 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; } } }
반응형
'안드로이드 개발' 카테고리의 다른 글
윈도우에서 안드로이드 풀소스 Git 로 받기 (0) | 2011.01.11 |
---|---|
Android(안드로이드)의 WebView 구현시 화면에 ProgressDialog로 로딩화면 구현하기 (1) | 2010.12.27 |
스마트폰에서 웹화면 만들기 - 스크롤 없애기 (1) | 2010.12.24 |
android 특정 위치에 위젯 클릭시 색상 변환 (0) | 2010.12.03 |
Android(안드로이드) 에서 dialog 내용 폰트 변경하기 (1) | 2010.11.06 |
안드로이드 마켓 배포를 위한 인증서 만들기 (1) | 2010.10.19 |
안드로이드 가로, 세로 모드 막기 (2) | 2010.10.17 |
안드로이드 어플 화면 캡쳐하기 (0) | 2010.10.15 |