3

我有一个水平滚动视图,里面有一个 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 高,因为位图的顶部和底部丢失了一些像素。

4

1 回答 1

0

如果我不得不以最简单的方式解决这个问题。我将滚动视图的宽度设置为与屏幕宽度相同。高度并不重要,因为您假设高度适合屏幕(至少这是我从您的问题中收集到的)。

据我所知,滚动视图将滚动任何大于实际屏幕或大于指定滚动宽度或滚动高度的任何内容。

这可能会帮助您开始获得可观的屏幕尺寸 - 获取屏幕宽度和高度

当然,由于不同的设备具有不同的屏幕尺寸 - 你必须“以编程方式”执行此操作。

这种实施对你有用吗?

于 2013-05-15T17:43:00.597 回答