点击小图显示大图 Alertdialog 全屏都可以

本文介绍了一种通过点击小图展示大图的方法。利用AlertDialog创建了一个对话框,并设置了ImageView来显示放大的图片。此外,还提供了关闭图片预览的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目当中遇到了点击小图显示大图的需求,找个半天没有合适的 后来还是自己搞吧。。

直接上代码。。。


 public void smallImgClick(View v) {
       //有背景图
        final AlertDialog dialog = new AlertDialog.Builder(this).create();
        ImageView imgView = getView();
        dialog.setView(imgView);
        dialog.show();

        // 全屏显示的方法
//     final Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
//     ImageView imgView = getView();
//     dialog.setContentView(imgView);
//     dialog.show();

        // 点击图片消失
        imgView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                dialog.dismiss();
            }
        });
    }


    private ImageView getView() {
        ImageView imgView = new ImageView(this);
        imgView.setLayoutParams(new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT));

        InputStream is = getResources().openRawResource(R.drawable.ic_launcher);
        Drawable drawable = BitmapDrawable.createFromStream(is, null);
        imgView.setImageDrawable(drawable);

        return imgView;
    }



### 实现 Dialog 显示启动片 为了在 Android 应用程序中通过 `Dialog` 来展示启动片,可以创建一个自定义对话框。这涉及到设置对话框窗口属性以及加载特定的布局来显示像。 #### 创建自定义对话框类 首先,构建一个新的 Java 类继承自 `DialogFragment` 或者直接使用 `AlertDialog.Builder` 如果不需要复杂的逻辑处理: ```java public class SplashImageDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // 使用 AlertDialog.Builder 构建基础对话框 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // 加载自定义视作为对话框的内容 LayoutInflater inflater = requireActivity().getLayoutInflater(); View dialogView = inflater.inflate(R.layout.dialog_splash_image, null); // 设置对话框内容为上述视 builder.setView(dialogView); // 可选配置:移除标题栏等样式调整 builder.setCancelable(false); return builder.create(); } } ``` #### 定义 XML 布局文件 接着,在项目的 res/layout 目录下添加名为 `dialog_splash_image.xml` 的新文件,用来描述要呈现给用户的界面组件。这里假设只需要一张全屏大小的 ImageView 来承载启动画面: ```xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 启动片 --> <ImageView android:id="@+id/splashImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="centerCrop" android:src="@drawable/your_splash_image"/> </RelativeLayout> ``` #### 展示对话框 最后一步是在适当的地方实例化并显示这个对话框。通常情况下会在 Activity 的 `onCreate()` 方法里完成这一操作: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ...其他初始化代码... // 显示启动片对话框 SplashImageDialog splashDialog = new SplashImageDialog(); splashDialog.show(getSupportFragmentManager(), "splash_dialog"); // 设定延迟关闭对话框的时间(例如3秒) Handler handler = new Handler(Looper.getMainLooper()); handler.postDelayed(() -> dismissSplash(splashDialog), 3000); } private void dismissSplash(SplashImageDialog splashDialog){ if (splashDialog.isVisible()){ splashDialog.dismiss(); } } ``` 以上实现了当应用程序启动时会弹出带有指定启动片的对话框,并且三秒钟之后自动消失[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值