2012-09-04 4 views
3

대화 상자에 ImageView를 표시하려고하는데 몇 가지 예를 따라 왔지만 응용 프로그램이 닫히는 대화 상자를 열 때처럼 작동하지 않는 것 같습니다. 대화 상자의 이미지

<ImageView android:id="@+id/image" 
      android:contentDescription="@string/desc1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

내가 내부의 이미지로 대화 상자를 표시 할 수 있었다 나는 또한 이미지를 회전 할 수있었습니다이 새로운 코드를 사용하여 내 MainActivity

button1.setOnLongClickListener(new OnLongClickListener() 
    { 
     public boolean onLongClick(View v) 
     { 
      AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create(); 

      dialog.setTitle("Title"); 
      ImageView img = (ImageView) findViewById(R.id.image); 
      img.setImageResource(R.drawable.dust); 
      dialog.setView(img); 

      dialog.show(); 
      return false; 

     } 


    }); 

} 

에있는 것입니다

button1.setOnLongClickListener(new OnLongClickListener() 
    { 
     public boolean onLongClick(View v) 
     { 
      Dialog dialog = new Dialog(MainActivity.this); 
      LayoutInflater inflater = LayoutInflater.from(MainActivity.this); 


      RotateAnimation anim = new RotateAnimation(0f, 360f, 200f, 200f); 
      anim.setInterpolator(new LinearInterpolator()); 
      anim.setRepeatCount(Animation.INFINITE); 
      anim.setDuration(10000); 

      dialog.setTitle("You have found the easter egg!"); 
      View view = inflater.inflate(R.layout.activity_main2, null); 
      dialog.setContentView(view); 
      view.startAnimation(anim); 

      dialog.show(); 
      return false; 

     } 


    }); 

} 
+0

체크 아웃이기 때문입니다. com/guide/topics/ui/dialogs.html # CustomDialog – rajpara

+0

ImageView를 사용할 수있는 xml 레이아웃 파일 이름은 무엇입니까 ??? – user370305

+0

xml 레이아웃 파일은 Activity_Main – user1643333

답변

2
when I open the dialog the app closes. 

당신의 대화 ImageView img 그냥이 같은 코드를 변경

ImageView img = (ImageView) dialog.findViewById(R.id.image); // <--- img is not visible through dialog.. 
img.setImageResource(R.drawable.dust); // <--- this line throw exception 

, 사용자 정의 대화 http://developer.android을 만드는 방법

AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create(); 
LayoutInflater inflater = LayoutInflater.from(MainActivity.this); 
dialog.setTitle("Title"); 
View view = inflater.inflate(R.layout.<xml_image>, null); // xml Layout file for imageView 
ImageView img = (ImageView) view.findViewById(R.id.image); 
img.setImageResource(R.drawable.dust); 
dialog.setView(view); 
dialog.show(); 
+0

이미지 리소스가 애니메이션 목록 인 경우 이미지를 애니메이션화하는 방법은 무엇입니까? – mehmet

3

사용자 정의 대화 상자에는 AlertDialog를 사용하지 마십시오. 일반 Dialog 클래스를 사용하고 setContentView() 메소드입니다. DialogFragment를 사용할 수도 있습니다.

UPD : AlertDialog에 setView() 메소드가 있다고 들었습니다. 너도해볼 수있어.

+0

-1. 죄송합니다. AlertDailog에서 setView()를 사용할 수 있습니다. – user370305

+0

이 업데이트되었습니다. 정보 주셔서 감사합니다. –

+0

나는이 두 가지를 모두 시도했지만 여전히 작동하지 않습니다. – user1643333