我有一个活动,显示带有水平长图像视图的howizontalscrollview。
我需要在活动开始时,horizontalscrollview必须滚动到itselft的中心,而不是滚动到开头。
我正在搜索谷歌和这里,我找不到方法..
这是我的水平滚动视图:
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);
由于
答案 0 :(得分:5)
尝试:
wvScroll.scrollTo(offsetX, 0);
可能存在计时问题,其中将在创建scrollView之前设置偏移量。在这种情况下,请使用postDelayed()
与runnable
调用scrollTo
增加:
使用postDelayed():
private Handler mHandler = new Handler();
onCreate中的执行:
mHandler.postDelayed(new Runnable(){
public void run() {
wvScroll.scrollTo(offsetX, 0);
}
}, 1000);
答案 1 :(得分:3)
我不确定,但可能你需要有孩子的身高和宽度。像这样的Smth:
int centerX = wvScroll.getChildAt(0).getWidth()/2;
int centerY = wvScroll.getChildAt(0).getHeight()/2;
wvScroll.scrollTo(centerX, centerY);