마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지 버튼 클릭시, 다이얼로그 팝업의 이미지가 뜨도록 하고싶어요.

0 추천

 

안녕하세요.

 

팝업창을 띄울때, 팝업창 안에 글씨를 띄우는게 아니라, 저장되어 있는 큰 이미지를 띄우고 싶은데 어떻게 하는지 잘 모르겠습니다.. 각 case 문 마다, 다른 이미지를 띄워주어야 해서, 온셋클릭 이벤트 안의 내용을 어떻게 구성을 해주어야 할지 며칠째 미친듯이.. 고민입니다. 여러개의 다이얼로그들을 만들어 보았는데,

이미지관련해서는 왜이렇게 저에게 어려운 문제인지 모르겠네요..

 

아래의 xml에서 구성되어 있는 bell_image를 눌렀을 경우에 Bell 이미지는 case 0 에서는 one.jpg

case1에서는 two.jpg, case2에서는 three.jpg의 이미지를 띄우고 싶습니다.

 

다이얼로그에 대한 구성은 Bell_Image_Custom_Dialog.java 파일에 구성이 되어 있습니다.

 

First_Movie 부분에서 각 case문(1~5까지)에 따라서 각기 다른 이미지들을 보여주고자 하는데, Bell_Image_Custom_Dialog 부분이 어디가 잘못되서 이러는지 잘 모르겠습니다.. 

 

아래에 소스를 한번 적어보았습니다 ㅠ 소스가 추가되는 부분은 아래의 댓글에 좀 더 추가해 보았습니다.

 

<First_Movie 부분의 벨이미지 이벤트 부분>

Bell = (ImageView) findViewById(R.id.bell_image);
Bell.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Bell_Image_Custom_Dialog dialog = new Bell_Image_Custom_Dialog(First_Movie.this);
        dialog.show();

    }
});

 

< Bell_Image_Custom_Dialog 자바 부분 파일의 소스입니다 >

package ex.real_project;

import android.app.Dialog;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;

public class Bell_Image_Custom_Dialog extends Dialog {

    ImageView Movie_Instruction;

    public Bell_Image_Custom_Dialog(Context context) {
        super(context);
        setContentView(R.layout.activity_bell__image__custom__dialog);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_bell__image__custom__dialog);

        Movie_Instruction = (ImageView) findViewById(R.id.imageView2);
        //Movie_Instruction.setOnClickListener(this);

    }

    /*
    public void setImage(ImageView resource) {
        ImageView.setIamgeResource(resource);
    }
    */
}

 

공산당 (1,960 포인트) 님이 2016년 11월 2일 질문
공산당님이 2016년 11월 3일 수정
<Bell_Image_Custom_Dialog 자바 부분의 에러 부분입니다>

sunju.png




< Bell_Image_Custom_Dialog xml 파일의 소스입니다 >
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_bell__image__custom__dialog"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="ex.real_project.Bell_Image_Custom_Dialog">

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:srcCompat="@mipmap/ic_launcher"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        />

</RelativeLayout>

1개의 답변

0 추천
R.id.bell_image가 clickable="true"로 되어 있나요~?
핸디 (1,840 포인트) 님이 2016년 11월 2일 답변
case문 안에 Bell_Image_Custom_Dialog .Movie_Instruction.setImageResource(R.drawable.img2).. 이런식으로 하면 안될까요?
음... case문 안을 어떻게 구성을 해주어야 할지 ..
아래와 같이 하니까, 벨 부분의 이미지가 바뀌더라구요.
벨을 눌렀을때, 팝업 메세지가 떠야할텐데.. 아 ㅠ 고민이 많습니다..
이 부분을 어떻게 구성을 해야 할까요..

// ImageView Img_Dialog_1 = (ImageView) findViewById(R.id.bell_image);
// Img_Dialog_1.setImageResource(R.drawable.first_moive_image);
그리고 정말 죄송합니다만 한가지 더 질문을 해보아도 될까요 ㅠ

아래를 실행을 해보면 Bell_Image_Custom_Dialog  부분에 .show() 함수가 없는데 어째서, show 함수가 되는지 궁금합니다.

 Bell = (ImageView) findViewById(R.id.bell_image);
        Bell.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Bell_Image_Custom_Dialog dialog = new Bell_Image_Custom_Dialog(First_Movie.this);
                dialog.show();

            }
        });
show()함수는 이미 dialog 클래스(Dialog.java) 내부에 있는 함수고, 그것을 상속받아 사용하니까 당연히 사용할 수 있는거죠
팝업메시지라면 Toast를 말씀하시는건지 AlertDialog를 말씀하시는건지 모르겠지만 그것도 case문에 똑같이 넣으셔도 됩니다.
그러나 일일이 case0,case1,case2.. 이렇게 하면 귀찮기 때문에

public ListViewItem getItem(int position) {
        return listViewItemList.get(position);
    }

이렇게 주로 사용합니다
...