2016년 9월 15일 목요일

안드로이드 AlertDialog user defined ui _ 사용자가 정의한 UI를 다이알로그로 띄워줘요


안드로이드 AlertDialog user defined ui _ 사용자가 정의한 UI를 다이알로그로 띄워줘요 

정해진 포맷의 AlertDialog가 있는데, 이외에 사용자가 정한 UI를 띄우고자 하실 경우에 다음의 소스를 활용하세요~

xml )

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

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="350dp"
        android:padding="3dp" >
        <TextView android:id="@+id/tvPopTitle"
            android:layout_width="fill_parent"
            android:layout_height="20dp"
            android:layout_marginLeft="5dp"
            android:layout_marginBottom="5dp"
            android:text=""
            android:textSize="15dp"
            android:layout_gravity="left|center_vertical"
            android:gravity="left|center_vertical" />
         <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="330dp"
    android:background="#ffffff" >
    <ScrollView
   android:id="@+id/svPop"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:gravity = "top" >
   <LinearLayout
       android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
    <LinearLayout
android:layout_width="fill_parent"
android:layout_height="3px"/>
   <LinearLayout
android:id="@+id/llPopListBody"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/><!-- 여기에 목록들을 추가해준다.(addView 이용) -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="97dp"/>
</LinearLayout>
</ScrollView>

</LinearLayout>
    </LinearLayout>

자바 소스)

View viewAlert = actMain.getLayoutInflater().inflate(R.layout.pop_gugun_select, null);
TextView tvPopTitle = (TextView) viewAlert.findViewById(R.id.tvPopTitle);
tvPopTitle.setTextColor(Color.WHITE);
tvPopTitle.setText("구군 선택");
AlertDialog alert = alt.create();

Display display = ((WindowManager)actMain.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int iWidth = display.getWidth();
int iHeight= display.getHeight();

WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(alert.getWindow().getAttributes());
lp.width = iWidth*90/100;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;

alert.show();
Window window = alert.getWindow();
window.setAttributes(lp);
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));


핵심 부분 )
*) R.layout.pop_gugun_select : pop_gubun_select.xml로 UI 구성
*) WindowManager , setAttributes를 통하여 팝업의 넓이와 높이 사이즈를 조절

-----


이미지로 보기)





즐거운 시간 보내세요~



댓글 없음:

댓글 쓰기