반응형
|
개발환경 : 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;
}
}
}
반응형
'안드로이드 개발' 카테고리의 다른 글
| 윈도우에서 안드로이드 풀소스 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 |
