막무가내 삽질 블로그

안드로이드 커스텀 다이얼로그, android customdialog 본문

Android

안드로이드 커스텀 다이얼로그, android customdialog

joong~ 2020. 1. 28. 21:28
728x90

안드로이드 다이얼로그에 이미지뷰 넣기

 

 

custom.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="10dp" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/rightsee"
        android:textSize="25dp"
        android:layout_gravity="center"/>

    <LinearLayout
        android:padding="5dp"
        android:layout_marginTop="5dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <ImageView
            android:padding="2dp"
            android:id="@+id/image1"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"/>
        <ImageView
            android:padding="2dp"
            android:id="@+id/image2"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"/>
        <ImageView
            android:padding="2dp"
            android:id="@+id/image3"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"/>
    </LinearLayout>

    <LinearLayout
        android:padding="5dp"
        android:layout_marginTop="5dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <ImageView
            android:padding="2dp"
            android:id="@+id/image4"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"/>
        <ImageView
            android:padding="2dp"
            android:id="@+id/image5"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"/>
        <ImageView
            android:padding="2dp"
            android:id="@+id/image6"
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"/>
    </LinearLayout>

    <Button
        android:id="@+id/btn_ok"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/login_btn"
        android:text="@string/ok"/>


</LinearLayout>

 

custom.java

    private void customDialog() {
        Dialog dialog = new Dialog(this);
        dialog.setContentView(R.layout.signup3_customdialog);
        dialog.setTitle("custom dialog !!");
        ImageView iv1 = dialog.findViewById(R.id.image1);
        ImageView iv2 = dialog.findViewById(R.id.image2);
        ImageView iv3 = dialog.findViewById(R.id.image3);
        ImageView iv4 = dialog.findViewById(R.id.image4);
        ImageView iv5 = dialog.findViewById(R.id.image5);
        ImageView iv6 = dialog.findViewById(R.id.image6);
        Button button = dialog.findViewById(R.id.btn_ok);
        Glide.with(this).load(R.drawable.iv1).into(iv1);
        Glide.with(this).load(R.drawable.iv2).into(iv2);
        Glide.with(this).load(R.drawable.iv3).into(iv3);
        Glide.with(this).load(R.drawable.iv4).into(iv4);
        Glide.with(this).load(R.drawable.iv5).into(iv5);
        Glide.with(this).load(R.drawable.iv6).into(iv6);
        dialog.show();
        button.setOnClickListener(view -> dialog.dismiss());
    }

 

custom dialog

 

 

xml 에서 최상위 layout width에 match_parent을 주게 되면 안먹는다. 다이얼로그가 굉장히 작게 나온다.

간혹 match_parent가 안먹는 케이스가 있다. 아직 이유는 찾지 못했다. 그래서 고정값을 주어서 해결했다.

 

이 방법 말고 자바코드에서 windoe layoutParams에서 match_parent를 주면 먹히는 걸고도 알고 있다.

다음에 테스트 한번 해봐야 겠다.

 

Comments