Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OnClickListener在其他意图/片段中全屏显示ImageView_Java_Android_Android Fragments_Android Activity_Imageview - Fatal编程技术网

Java OnClickListener在其他意图/片段中全屏显示ImageView

Java OnClickListener在其他意图/片段中全屏显示ImageView,java,android,android-fragments,android-activity,imageview,Java,Android,Android Fragments,Android Activity,Imageview,我正在使用片段,我想在另一个视图或对话框中显示片段缩略图中的图像视图,或用于显示的内容:) 我想当我们点击ImageView时,会显示新的视图,当我们点击按钮时,会返回主片段 我已经实现了我的onClickListener,它可以工作,但是我不知道如何传递数据或者其他什么来全屏显示ImageView 以下是我的onClickListener代码: mImageReport.setOnClickListener(new View.OnClickListener() { @O

我正在使用片段,我想在另一个视图或对话框中显示片段缩略图中的图像视图或用于显示的内容:)

我想当我们点击ImageView时,会显示新的视图,当我们点击按钮时,会返回主片段

我已经实现了我的onClickListener,它可以工作,但是我不知道如何传递数据或者其他什么来全屏显示ImageView

以下是我的onClickListener代码:

    mImageReport.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (zoomOut) {

                zoomOut = false;
            } else {

                zoomOut = true;
            }
        }
    });

无需创建显示全屏图像的新窗口。您可以使用android默认的gallery图像查看器。只需将完整图像路径或图像URI设置为“mImageReport”作为标记,在其onClick中您可以检索它。使用以下代码行将全屏图像显示为

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("content://media/external/images/media/16"))); /** replace with your own uri */

您可以将全屏对话框设置为显示图像,如下所示

   final Dialog nagDialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
        nagDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
        nagDialog.setCancelable(false);
        nagDialog.setContentView(R.layout.preview_image);
        Button btnClose = (Button)nagDialog.findViewById(R.id.btnIvClose);
        ImageView ivPreview = (ImageView)nagDialog.findViewById(R.id.iv_preview_image);
        ivPreview.setBackgroundDrawable(dd);

        btnClose.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {

                nagDialog.dismiss();
            }
        });
        nagDialog.show();
仅包含图像视图和关闭按钮的布局的xml代码:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<ImageView android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:id="@+id/iv_preview_image" />


<Button android:layout_width="wrap_content"
    android:layout_height="wrap_content"   android:background="@drawable/close"
    android:id="@+id/btnIvClose" android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" />


只需使用不同的全屏布局,并将ImageView设置为match\u父级。并使视图在单击事件时可见和不可见。@Kunu我用布尔值更新了代码,现在我只需要知道如何设置不同的布局并将ImageView设置为match_parent。有什么好的理由吗?如果没有,我建议你试试这个。您可以使用Intent将图像转换为位图来传输图像,但这同样会占用大量内存,这是不可取的。@Kunu哦,是的,我必须关心内存。。。什么是保持安全内存和执行此类操作的最佳选择?是的,但我的mImageReport加载的是类似URL的,那么我如何在Uri.parse中传递数据?我的mImageReport使用mCurrentReportString.getUrlImages()加载我的url并显示它:UrlImageViewHelper.setUrlDrawable(mImageReport,mCurrentReportString.getUrlImages());我以为你想显示本地存储的全屏图像。那么您想以全屏模式加载远程图像吗?是的,这是可能的,但为此,您需要创建一个对话框或片段来处理此部分。最好创建单独的片段来处理显示全屏图像的这一部分。将图像url传递到此片段,您可以将其作为参数传递,并使用图像加载库在该片段中检索和加载。对于图像加载和将图像完整路径作为参数传递,请通过此感谢回复,为什么第一行的backgroundsActivity无法识别?最后一个问题:什么是ivPreview.setbackgrounddravable(dd)?因为它对我来说是红色的。。。