在运行时调整DialogFragment的大小

时间:2016-07-31 11:53:16

标签: android android-fragments android-dialogfragment

我应该在我的应用中使用DialogFragment。如果我点击其他片段中的缩略图,此片段的目的是显示缩放的图片。

以下是它的布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent">

    <ImageView
        android:id="@+id/zoomed_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</FrameLayout>

所以基本上,这个ImageView应该显示放大的图片,我想在屏幕上尽可能多地显示图片。

我有一个位图,我可以根据屏幕的大小来计算可以适合屏幕的显示尺寸。

问题:问题是显示的缩放图片中的额外空间:

人像: enter image description here

风景: enter image description here

我无法&#34;庄稼&#34;这个额外的空间。我阅读了一个调整大小的解决方案,我做了以下事情:(在调用mPhotoView.setImageBitmap(bitmap)之前,其中mPhotoView是我从findViewById()获得的ImageView实例)

BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(getArguments().getString(key_imagePath), options);
        float srcWidth = options.outWidth;
        float srcHeight = options.outHeight;

        FrameLayout.LayoutParams p = new FrameLayout.LayoutParams((int)srcWidth, (int)srcHeight);
        view.setLayoutParams(p);
        view.requestLayout();

问题:

  1. 如何从DialogFragment的视图中删除这个额外的空格?
  2. 作为DialogFragment是否意味着布局大小将被修复或者总体上存在类似的视图?
  3. 是否可能是因为布局通过?

1 个答案:

答案 0 :(得分:0)

将第一个FrameLayout's heightwidth加入&#34; wrap_content&#34;不工作? (根据需要将imageView设置为固定大小。)

android:layout_width="wrap_content
android:layout_height="wrap_content">