在Android应用程序中是否可能只有一个图像弹出窗口?这类似于覆盖AlertDialog的正常视图,使其仅包含一个图像,而不包含其他内容。
**解决方案:***多亏了@blessenm的帮助,我才找到了答案。将Activity屏蔽为对话框似乎是理想的方法。以下是我使用的代码。应用程序可以根据需要调用此对话框样式的Activity,方法与启动新Activity的方法相同 *
图像对话框.java
public class ImageDialog extends Activity {
private ImageView mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_dialog_layout);
mDialog = (ImageView)findViewById(R.id.your_image);
mDialog.setClickable(true);
//finish the activity (dismiss the image dialog) if the user clicks
//anywhere on the image
mDialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
您的对话框布局.xml
<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image_dialog_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity = "center">
<ImageView
android:id="@+id/your_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src = "@drawable/your_image_drawable"/>
</FrameLayout>
- 为活动设置以下样式以完成此操作至关重要:*
样式.xml
<style name="myDialogTheme" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFrame">@null</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowContentOverlay">@null</item>
</style>
- 最后一步是在清单中为Activity声明此样式,如下所示:*
<activity android:name=".ImageDialog" android:theme="@style/myDialogTheme" />
6条答案
按热度按时间os8fio9y1#
无xml:
pkln4tw62#
如果你只是想使用一个普通的对话框,类似这样的东西应该工作
image_layout.xml
mftmpeh83#
请尝试以下操作:
它还具有图像放大/缩小功能。
将
compile 'com.github.chrisbanes.photoview:library:1.2.4'
添加到build.gradle
添加以下xml
custom_fullimage_dialoge.xml
9w11ddsr4#
你可以通过在Kotlin中创建一个对话片段来轻松地做到这一点:
BigImageDialog.kt
dialog_big_image.xml
打开对话框:
ruoxqz4g5#
有几种方法可以做到这一点。但是,如果你想让你的图片看起来悬浮在你现有的Activity之上,你可能想使用一个在清单中定义了android:theme="@style/Theme.Transparent”的Activity。然后,设计你的布局,让一个ImageView位于屏幕中央。用户必须按下后退按钮才能退出,但听起来这就是你想要的。
如果您希望它看起来像一个实际的对话框,您可以始终使用Theme. Dialog来使用对话框样式的Activity。或者,您可以只使用一个对话框并对其进行自定义。
idfiyjo86#
更灵活和推荐的方法是使用DialogFragment。如果您想支持3.0之前的版本,可以使用兼容库