使用Dialog(对话框)实现图片放大效果

在我们日常使用app的时候,很多时候在个人主页有这样一个功能,编辑个人资料的时候,单击头像可以查看头像,并且图片会被放大,效果如下所示:

那么在Android里面我们应该怎么实现这个效果呢?其实很简单,我们只需要使用Dialog。那什么是Dialog呢?

Dialog(对话框)是 Android 中的一个界面组件,用于在当前活动的上下文中显示一个模态窗口。它通常用于显示警告、确认、信息提示等用户交互的消息或操作,我们这里就是使用它来装载我们被放大的图片。具体实现代码如下

private void bigImageLoader(Bitmap bitmap){
        final Dialog dialog = new Dialog(getActivity());//创建一个对话框对象 dialog,用于显示大图
        ImageView image = new ImageView(getContext());//创建一个 ImageView 对象 image,用于显示加载的大图。
        image.setImageBitmap(bitmap);
        dialog.setContentView(image);//将 ImageView 设置为对话框的内容视图,这样大图就会显示在对话框中
        dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
        dialog.show();
        image.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                dialog.cancel();//当用户点击大图时,取消对话框的显示,关闭大图显示
            }
        });
    }

其中有这样一句代码

dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);

这句代码的作用就是设置对话框的背景为透明,使得对话框周围没有边框,突出显示大图。以下是对比图:(左图是写了这句代码,右图是没写这句代码)

写完这个方法之后我们只需要再到点击事件中调用这个方法就行啦!

imageView25.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取ImageView的Bitmap
                bigImageLoader(((BitmapDrawable)imageView25.getDrawable()).getBitmap());

            }
        });

我是写在fragment里面,在activity里面我并没有尝试过,但是根据方法的编写应该都是可以实现的,有兴趣的话大家可以去试试哦~

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值