效果图:

  • 布局文件
<?xml version="1.0" encoding="utf-8"?><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="match_parent">    <ImageView        android:id="@+id/imageView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        tools:ignore="ContentDescription" /></RelativeLayout>
  • 新建style样式
<style name="ShowImageDialog" parent="@android:style/Theme.Dialog">        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">true</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:background">@android:color/transparent</item>        <item name="android:backgroundDimEnabled">true</item>    </style>
  • 新建ShowImageDialog继承Dialog:
import android.annotation.SuppressLint;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.WindowManager;import android.widget.ImageView;public class DzShowImageDialog extends Dialog {    private Object showImage;    public DzShowImageDialog(Context context, Object showImage) {        super(context, R.style.ShowImageDialog);        this.showImage = showImage;    }    @SuppressLint("ResourceType")    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.dialog_showimage);        ImageView imageView = findViewById(R.id.imageView);        MyCommon.setViewContent(imageView, showImage);        setCanceledOnTouchOutside(true); // 设置点击屏幕或物理返回键,dialog是否消失        Window w = getWindow();        assert w != null;        WindowManager.LayoutParams lp = w.getAttributes();        lp.x = 0;        lp.y = 40;        onWindowAttributesChanged(lp);        imageView.setOnClickListener(                new View.OnClickListener() {                    @Override                    public void onClick(View view) {                        dismiss();                    }                });    }}
  • 附MyCommon方法
/** * 设置 ImageView 的显示内容。 *  * @param content *            支持 null,Integer(ResID),Bitmap,Drawable。 */public static boolean setViewContent(ImageView view, Object content) {if (view == null)return false;Object tagValue = getTagValue(content);if (view.getTag(R.string.setTagKey_content).equse(tagValue))return view.getDrawable() != null;view.setTag(R.string.setTagKey_content, tagValue);Drawable real = getDrawable(view, content);view.setImageDrawable(real);return (real != null);}/** * 为指定 View 准备其需要使用的 Drawable 对象。 */@SuppressWarnings("deprecation")public static Drawable getDrawable(View view, Object drawable) {if (view == null)return null;if (drawable == null)return null;Drawable real = null;try {if (drawable instanceof DzInteger)drawable = ((DzInteger) drawable).value;if (drawable instanceof Integer) {int resId = (Integer) drawable;if (resId == 0)return null;real = view.getResources().getDrawable(resId);} else if (drawable instanceof Drawable) {real = (Drawable) drawable;} else if (drawable instanceof Bitmap) {real = new BitmapDrawable(view.getResources(), (Bitmap) drawable);}} catch (Throwable e) {Log.e("", "MyCommon.getViewDrawable(.., ..) failed for %s", e.toString());}// 需要设置一下,否则在 TextView 中显示不出来if (real != null) {real.setBounds(0, 0, real.getMinimumWidth(), real.getMinimumHeight());}return real;}
  • 使用示例

使用的话只需要调用 new ShowImageDialog(context , 图片).show(); 即可。

更多相关文章

  1. Android自动化工具Monkeyrunner使用(六) —— 根据ID查找对象
  2. Android(安卓)三角标签(自定义Textview控件)
  3. android 音量获取和设置总结
  4. android sqlite和listview 使用小例子
  5. andorid 自定义seekbar
  6. Android(安卓)使用netty框架实现socket通信
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. 2021_2_10
  2. 2021.2.10
  3. Java爬虫可以非常溜
  4. 还玩什么ZAO换脸软件,首例AI诈骗案已经诞
  5. 地外文明现身?现实版中国「红岸基地」首次
  6. Java程序跑的快,全要靠线程带
  7. 某乎用户学历大曝光:世界500强CEO某乎占49
  8. 号称中国版ins的微博新社交App「绿洲」,上
  9. 2019年苹果发布会:没有5G但更便宜的iPhone
  10. 致死事件大爆发,美国颁布紧急禁令:「电子烟