fullScreen ImageView关闭

时间:2017-07-26 23:40:14

标签: android imageview

这是我的代码:

final ImageView imageView1 = (ImageView) findViewById(R.id.imageView8);
    imageView1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            imageView1.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT));
        }
    });

通过此代码,当我点击我的ImageView时,我可以在fullScreen中看到它。 现在我有一个问题: 当我在全屏模式下看到imageView时,我希望当我按下Back时,此imageView会关闭并返回到之前的状态,我的应用程序不会回到之前的活动

2 个答案:

答案 0 :(得分:0)

而不是在全屏幕上打开图像,您可以使用自定义对话框打开该图像,该图像称为完整图像对话框,完全与AlertDialog一样,因为您只需要设计自定义布局,包括宽度和高度你正在打开的形象。它很容易维护,因为点击屏幕上的任何地方对话框都会自动关闭,您的活动将恢复。 如果你想,那我可以给你更多的想法吗?

答案 1 :(得分:0)

步骤1:使用此方法创建课程FullImageDialog

public static void showImage(Context context, String strImagePath) {
        AlertDialog.Builder imageDialog = new AlertDialog.Builder(context);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.custom_fullimage_dialog, null);
        ImageView image = (ImageView) layout.findViewById(R.id.fullImage);

        Glide.with(context)
                .load(strImagePath)
                .placeholder(R.drawable.default_user_image)
                .dontAnimate()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(image);
        //image.setImageDrawable(tempImageView.getDrawable());

        imageDialog.setView(layout);

        final AlertDialog alert= imageDialog.create();
        alert.getWindow().getAttributes().windowAnimations=R.style.FadeInTheme;
        alert.show();
    }

步骤2:将full_image_dialog的xml创建为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/layout_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/fullImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:background="@drawable/default_user_image"
        android:scaleType="fitXY" />

</LinearLayout>

第3步:调用需要打开此对话框的方法:

final ImageView imageView1 = (ImageView) findViewById(R.id.imageView8);
    imageView1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
      //call FullImageDialog class by giving parameter of imageUrl
      FullImageDialog.showImage(imageUrl);

}