3

水平スクロール ビューがあり、その中に ImageView があります。このイメージビューには、幅が広く高さが低いビットマップがあります。

ビットマップで水平スクロールビューの高さを埋め、ビットマップを左から右にスクロールしたい。

このコードを使用しようとしましたが、機能しません。左右に 2 つのスペースが作成されます。これらのスペースは黒です。これらのスペースは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 に答える