8

水平方向に長いimageviewでhowizontalscrollviewを表示するアクティビティがあります。

アクティビティの開始時に、horizo​​ntalscrollviewを開始ではなく、それ自体の中央にスクロールする必要があります。

私はグーグルとここで検索しています、そして私は道を見つけることができません。

これは私の水平スクロールビューです:

    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.setScaleType(ScaleType.CENTER_CROP);
    wvScroll.addView(iv);
    mainLayout.addView(wvScroll);

ありがとう

4

2 に答える 2

5

試す:

wvScroll.scrollTo(offsetX, 0);

scrollView が作成される前にオフセットが設定されるタイミングの問題が発生する可能性があります。その場合、呼び出すpostDelayed()a とともに使用しますrunnablescrollTo

追加した:

postDelayed() を使用するには:

private Handler mHandler = new Handler();

onCreate で次のことを行います。

mHandler.postDelayed(new Runnable(){
    public void run() {
       wvScroll.scrollTo(offsetX, 0);
    }
}, 1000);
于 2012-10-17T19:02:59.053 に答える
3

よくわかりませんが、おそらく子の高さと幅が必要です。そのようなもの:

int centerX = wvScroll.getChildAt(0).getWidth()/2;
int centerY = wvScroll.getChildAt(0).getHeight()/2;
wvScroll.scrollTo(centerX, centerY);
于 2012-10-17T19:55:38.987 に答える