这是我的代码:
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会关闭并返回到之前的状态,我的应用程序不会回到之前的活动
答案 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);
}