8

我有一个显示带有水平长图像视图的 howizontalscrollview 的活动。

我需要当活动开始时,horizo​​ntalscrollview 必须滚动到 selft 的中心,而不是开始。

我在谷歌和这里搜索,我找不到路..

这是我的水平滚动视图:

    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);

可能存在时间问题,偏移量将在创建滚动视图之前设置。在这种情况下,postDelayed()runnable调用的 a 一起使用scrollTo

添加:

要使用 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 回答