我有一个水平滚动视图,在其内部有一个ImageView。这个ImageView具有高宽比低的位图。
我想让位图填充水平滚动视图的高度,并且希望从左到右滚动该位图。
我尝试使用了以下代码,但不起作用。它在左侧和右侧创建两个黑色的空间。这些空间来自ImageView...所以...位图的宽度小于ImageView。
HorizontalScrollView wvScroll = new HorizontalScrollView(this);
wvScroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
iv.setImageBitmap(Util.getRemoteImage("http://mywebsite.com/90.gif"));
//iv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
iv.setScaleType(ScaleType.CENTER_INSIDE);
iv.setBackgroundColor(Color.BLACK);
wvScroll.addView(iv);
wvScroll.setBackgroundColor(Color.GREEN);
mainLayout.addView(wvScroll);
我做错了什么?我还尝试使用iv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
,但它不起作用,结果相同。
编辑:
我还尝试使用ScaleType.CENTER_CROP
,但效果不好。由于位图的顶部和底部丢失了一些像素,因此位图的高度比ImageView要高。
android:adjustViewBounds
或setAdjustViewBounds(boolean)
设置为true,以使边界包裹图像内容。这样应该可以消除您看到的黑色空间。 - MH.FIT_XY
,但为了使其正常工作,您需要将正确的尺寸设置为ImageView。换句话说:计算图像和ImageView应该是什么大小(保持纵横比等),并相应地调整布局参数。 - MH.