这是我在这里的第一个问题,所以请对我轻松一点...
我的Android应用程序中的图像加载库Glide有一个奇怪的问题。
请原谅屏幕截图中的黑色方块,但我已签订合同,因此不得透露该应用程序的内容。代码本身也是如此(我将尽我所能)。
在我的应用程序中,我有一个带有某些片段的ViewPager,在一种片段中,我有一个图像,该图像可以将它的高度(宽度保持不变)]动态更改为2个选项之一(请参见下面的图像) 。如标题所示,我正在使用Glide加载该图像。
注意:对于每个高度,我都有一个合适的独立图像(以免与纵横比混淆),并且图像是ImageView的完全相同的大小(宽度X高度)
。当然,每次我调整ImageView的大小时,我也会加载适当的图像。当图像为“大”时,它将完美填充ImageView。问题是,第一次显示片段时(默认为“小”图像),图像的左右两侧都有一些空白空间-即图像未占用ImageView的整个宽度(请记住,加载的图像的大小和ImageView的大小是相同的)。现在到了奇怪的部分:当我从“大”回到“小”时,图像完全适合ImageView而没有这些空间,它是第一次在屏幕上显示该片段。
在下面的屏幕快照中,我在除图像边缘之外的大部分图像上都涂了一个黑色正方形,并在开发人员选项菜单中启用了“显示布局边界”,这使我的问题更加明显:
这是默认(“小”)图像的外观:"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()”,但没有用-第一次有总是空的空间(进入“大”后又回到“小”-没有空的空间)。
这是我在这里的第一个问题,所以请对我轻松一点...我的Android应用程序中的图像加载库Glide存在一个奇怪的问题。请原谅屏幕截图中的黑色方块,但我...
我有同样的问题,但尚未找到答案。