自定义图像对话框布局

时间:2017-02-07 08:37:50

标签: android android-layout android-imageview

  

要求

我想在带边框和关闭按钮的自定义对话框中显示图片,TouchImageView<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.example.view.TouchImageView android:id="@+id/imageSingleImage" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@mipmap/ic_launcher" /> </RelativeLayout> 用于放大/缩小功能。像这样

https://i.stack.imgur.com/nN1jJ.jpg

  

我试过

我尝试了多种方法来获得边界,但没有得到解决方案。

我的代码

{{1}}
  

使用@ user2025187代码我在输出中得到了这个

https://i.stack.imgur.com/Cv6Ph.png

  

我点击此图片

https://i.stack.imgur.com/LA8Uc.png

2 个答案:

答案 0 :(得分:1)

这是一件很简单的事情,你也可以在google上搜索它。

在drawable文件夹中创建一个布局文件,并将下面的代码添加为rectangle.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<stroke android:width="1dp" android:color="#000000" />
<padding android:left="1dp" android:top="1dp" android:right="1dp"
android:bottom="1dp" />

创建一个布局文件并添加此xml。 ex -dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<com.android.example.view.TouchImageView
    android:id="@+id/imageDialog"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="6dp" 
    android:background="@drawable/rectangle"/>

<TextView
    android:id="@+id/textDialog"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#FFF"
    android:layout_toRightOf="@+id/imageDialog"/>

 <Button
    android:id="@+id/declineButton"
    android:layout_width="100px"
    android:layout_height="wrap_content"
    android:text=" Submit "
    android:layout_marginTop="5dp"
    android:layout_marginRight="5dp"
    android:layout_below="@+id/textDialog"
    android:layout_toRightOf="@+id/imageDialog"
    />

  </RelativeLayout>

在您的java文件中添加以下代码,并且您的对话框已准备就绪。

          final Dialog dialog = new Dialog(CustomDialog.this);
            // Include dialog.xml file
            dialog.setContentView(R.layout.dialog);
            // Set dialog title
            dialog.setTitle("Custom Dialog");

            // set values for custom dialog components - text, image and button
            TextView text = (TextView) dialog.findViewById(R.id.textDialog);
            text.setText("Custom dialog Android example.");
            ImageView image = (ImageView) dialog.findViewById(R.id.imageDialog);
            image.setImageResource(R.drawable.image0);

            dialog.show();

            Button declineButton = (Button) dialog.findViewById(R.id.declineButton);
            // if decline button is clicked, close the custom dialog
            declineButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Close dialog
                    dialog.dismiss();
                }
            });

答案 1 :(得分:1)

试试这个,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_centerHorizontal="true"
      android:layout_centerVertical="true"
      android:layout_margin="10dp">

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_margin="10dp"
    android:background="@color/colorWhite">

    <com.android.example.view.TouchImageView
        android:id="@+id/iv_imageSingleImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:contentDescription="@string/contentDescription"
        android:padding="5dp" />

</RelativeLayout>

<ImageView
    android:id="@+id/iv_close"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/ic_cross" />
</RelativeLayout>