使用Button和ImageView进行对话?

时间:2014-12-03 20:31:52

标签: android android-layout

我尝试使用ImageView和Button创建一个Dialog。 ImageView我添加并工作,但按钮我无法在Dialog中添加,按钮不显示。 我该怎么办?

我在这里尝试。

XML

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"        
    >

    <ImageView
         android:id="@+id/ivCustomDialog"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"  
         android:padding="0dp"
         android:scaleType="centerCrop"                  
        />

    <Button
        android:id="@+id/btnProsseguir"
        android:layout_width="100px"
        android:layout_height="wrap_content"
        android:background="@drawable/resp_prosseguir"
        android:layout_marginTop="5dp"
        android:layout_marginRight="5dp"
        android:layout_below="@+id/ivCustomDialog"
        />

</RelativeLayout>

//活性

private void showDialog(final RespostaPergunta resposta){                   
            final Dialog dialog = new Dialog(getView().getContext());
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
            dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);                        
            dialog.setContentView(R.layout.custom_dialog);
            dialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
            ImageView ivCustomDialog = (ImageView) dialog.findViewById(R.id.ivCustomDialog);

            Button dialogButton = (Button) dialog.findViewById(R.id.btnProsseguir);
            dialogButton.setOnClickListener(new OnClickListener() {             
                @Override
                public void onClick(View v) {
                    FragmentTransaction ft;
                    Fragment frag = new InicioFrag();
                    if(resposta.getValor() == 1){
                        frag = new SalaInternaFrag();
                        ft = getFragmentManager().beginTransaction();
                        ft.replace(R.id.fl, frag);
                        ft.addToBackStack("back");
                        ft.commit();
                    }else{
                        frag = new InicioFrag();
                        ft = getFragmentManager().beginTransaction();
                        ft.replace(R.id.fl, frag);
                        ft.addToBackStack("back");
                        ft.commit();                        
                    }                       
                    dialog.dismiss();                   
                }
            });         

            if(resposta.getValor() == 1){
                ivCustomDialog.setImageResource(R.drawable.resp_correto);
            }else{
                ivCustomDialog.setImageResource(R.drawable.resp_errado);
            }

            dialog.show();

        }

2 个答案:

答案 0 :(得分:0)

也可能按钮被添加到对话框但可以看到它,因为所有空间都被图像占用,尝试将imageview和按钮添加到ScrollView(垂直) 像这样的东西

<ScrollView
..
.. >
    <LinearLayout ...>
        <ImageView .../>
        <Button .... />
    </LinearLayout>
</ScrollView>

运行,如果您可以看到按钮向下滚动,则只需更改图像宽度和高度

答案 1 :(得分:0)

我解决了这个问题。

我做到了。

<RelativeLayout    
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"        
    xmlns:android="http://schemas.android.com/apk/res/android">


        <ImageView
             android:id="@+id/ivCustomDialog"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"  
             android:padding="0dp"
             android:scaleType="centerCrop"                  
            />


        <Button
            android:id="@+id/btnProsseguir"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/resp_prosseguir"                     
            android:layout_alignParentBottom="true" 
            android:layout_centerHorizontal="true"          
            />


</RelativeLayout>