首页 > 解决方案 > 在全屏对话框中显示与 AlertDialog 按钮一起居中的位图

问题描述

我想在对话框中显示提到的事物中心,例如,现在其中一个显示如下:

在此处输入图像描述

它应该显示如下:

在此处输入图像描述

我的意思是,位图上方和按钮下方的相同空间。

这同样适用于位图的宽度,左侧和右侧应该有相同的空间,我当前的代码似乎实现了这一点。

这就是我调用对话框的方式:

 private fun showFullScreenDialog()
    {
        val vacationDialog = AlertDialog.Builder(fragment.context,R.style.DialogTheme)
        val factory = LayoutInflater.from(fragment.context);
        var view = factory.inflate(R.layout.sample, null)
        view.dialog_imageview.setImageBitmap(bitmap)
        vacationDialog.setView(view)
        vacationDialog.setPositiveButton("Cerrar"){dialog, which ->
            dialog.dismiss()

        }
        vacationDialog.show()

    }

这是 sample.xml 布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_gravity="center_horizontal"
              android:gravity="center_horizontal"
              android:background="@color/white"
>

    <ImageView
            android:id="@+id/dialog_imageview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:foregroundGravity="center_vertical"
    />

</LinearLayout>

这是定义的 DialogTheme 样式:

<style name="DialogTheme" parent="android:Theme.Dialog">

        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">fill_parent</item>
        <!-- No backgrounds, titles or window float -->
        <item name="android:windowBackground">@color/colorPrimary</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">false</item>
    </style>

关于如何解决这个问题的任何想法?

标签: androidbitmapandroid-alertdialog

解决方案


使用相对布局而不是线性布局-:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_gravity="center_horizontal"
              android:gravity="center_horizontal"
              android:background="@color/white"
>

    <ImageView
            android:id="@+id/dialog_imageview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:foregroundGravity="center_vertical"
    />

</LinearLayout>

推荐阅读