滑动库第一次没有填满整个宽度,但第二次工作正常

时间:2017-01-25 14:51:05

标签: android android-glide

这是我在这里的第一个问题,所以请放轻松一下......

我的Android应用程序中的图像加载库Glide有一个奇怪的问题。

请原谅截图中的黑色方块,但我正在签订合同,不允许透露该应用的内容。同样适用于代码本身(我将尽可能多地分享)。

在我的应用程序中我有一个带有一些片段的ViewPager,在一种类型的片段中,我有一个图像,我动态地将其“高度(宽度保持不变)”更改为2个选项之一(见下图)。 正如标题所说,我正在使用Glide加载该图像。

注意:对于每个高度,我都有一个合适且独立的图像(为了不影响宽高比),图像与ImageView的大小完全相同(宽度X高度) 。当然,每当我调整ImageView的大小时,我也会加载适当的图像。

当图像“大”时,它会完美地填充ImageView。 问题是当片段首次显示时(默认为“小”图像),图像的右侧和左侧都有一些空白区域 - 即图像不占据ImageView的整个宽度(请记住加载的图像的大小和ImageView的大小是相同的)。 现在到了奇怪的部分:当我从“大”回到“小”时,图像完全适合ImageView而没有第一次在屏幕上显示片段的空间。

在下面的屏幕截图中,我在大部分图像上放置了一个黑色方块(我无法透露),除了它的“边缘”,并在开发人员选项菜单中启用“show layout bounds”以使我的问题更加明显:

这是默认(“小”)图像的样子: "small" image with spaces

我最多只能发布2个链接,因此没有“大”图片的截图,但相信我 - 它非常适合ImageView。

这是从“大”回到“小”之后的图像: "small" image without spaces

这里有一些代码:

我布局的相关部分:

 <FrameLayout
    android:id="@+id/frameLayout_sequence_presentation"
    android:layout_width="@dimen/galaxyPX1240"
    android:layout_height="@dimen/galaxyPX1185"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="@dimen/galaxyPX100">

    <ImageView
        android:id="@+id/imageView_sequence_presentation"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

     //another view containing some buttons

</FrameLayout>

java的相关部分:

        //some code to determine whether we are loading "big"
        //or "small" image and set the size of "newHeight" accordingly

        mImageView.setImageDrawable(null);

        Glide.with(getActivity())
             .load(pictureUrl)
             .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
             .fitCenter() //just in case
             .into(mImageView);


        mflMediaContainer.getLayoutParams().height = newHeight;
        mflMediaContainer.requestLayout();

我已经尝试了打开或关闭所有可能的组合:“setImageDrawable(null)”,“。override(Target.SIZE_ORIGINAL,Target.SIZE_ORIGINAL)”和“.fitCenter()”但没有任何作用 - 第一次出现总是空的空间(并且在“大”之后然后回到“小” - 没有空的空间)。

0 个答案:

没有答案