gpt4 book ai didi

java - 使用 builder.setView() 设置 AlertDialog 宽度以适合固定大小 imageview 的大小

转载 作者:行者123 更新时间:2023-12-02 01:16:27 24 4
gpt4 key购买 nike

我是android开发新手,我想设置AlertDialog来显示固定大小宽度= 150dp,高度= 150dp的imageview。但是,当图像小于父宽度时,它有一个我想要处理的背景空间。

我尝试dialog.setView(dialogview,0,0,0,0).create()不起作用,父布局和imageview的宽度和高度的多个布局更改布局,不起作用。设置 dialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)),不起作用和其他各种东西。

这是我的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:background="#44403c"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
android:layout_gravity="center">
<pl.droidsonroids.gif.GifImageView
android:layout_width="150dp" android:layout_height="160dp"
android:src="@drawable/tickgifcrop"
android:scaleType="centerCrop"/>

这是我的 kotlin 代码:

val builder = AlertDialog.Builder(this)
val progressdialogview = LayoutInflater.from(this).inflate(R.layout.successdialog,null)
builder.setCancelable(false)
builder.setView(progressdialogview)
val dialog = builder.create()
dialog.show()
dialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))

This is what it look like.

最佳答案

将父布局的大小更改为wrap_content

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:background="@android:color/transparent"
android:layout_width="wrap_content"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_gravity="center">
<pl.droidsonroids.gif.GifImageView
android:layout_width="150dp" android:layout_height="160dp"
android:src="@drawable/tickgifcrop"
android:scaleType="centerCrop"/>

并在 dialog.show() 之后将以下内容添加到代码中

val lp = WindowManager.LayoutParams()
lp.copyFrom(dialog.window?.attributes)
lp.width = WindowManager.LayoutParams.WRAP_CONTENT
lp.height = WindowManager.LayoutParams.WRAP_CONTENT

dialog.window?.attributes = lp

删除对话框后面的阴影添加

dialog.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)

关于java - 使用 builder.setView() 设置 AlertDialog 宽度以适合固定大小 imageview 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57657729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com