2012-10-17 7 views
7

가로로 긴 이미지 뷰가있는 howizontalscrollview를 보여주는 액티비티가 있습니다.활동이 시작될 때 HorizontalScrollView의 중심으로 스크롤하는 방법은 무엇입니까?

활동이 시작될 때 horizontalalscrollview를 시작점이 아닌 그 중심점까지 스크롤해야합니다.

내가 여기에 구글에서 검색을하고 있는데 내가 방법을 찾을 수 없습니다 ..

이 내 수평 스크롤 뷰입니다 :

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

감사

답변

5

시도 :

wvScroll.scrollTo(offsetX, 0); 

타이밍 문제가있을 수 있습니다. 여기서 오프셋은 scrollView가 만들어지기 전에 설정됩니다. 에서 onCreate에서

private Handler mHandler = new Handler(); 

할 :

mHandler.postDelayed(new Runnable(){ 
    public void run() { 
     wvScroll.scrollTo(offsetX, 0); 
    } 
}, 1000); 
+3

나는 scrollTo가 있다는 것을 알고 있지만 ... ..... 어떻게 그 오프셋을 얻을 수 있습니까 ???? 나는 너의 방식을 이해하지 못했다. 제발, 코드 예제를 게시 할 수 있습니까? – Pableras84

+1

@ Pableras84 - offsetX = wvScroll.getWidth()/2'는 어떻습니까? – Tim

3

아니에요

이 postDelayed를 (사용하려면) :이 경우에 scrollTo

ADDED를 호출하는 runnablepostDelayed()를 사용 물론 너는 아이의 높이와 너비가 있어야한다. Smth like that :

int centerX = wvScroll.getChildAt(0).getWidth()/2; 
int centerY = wvScroll.getChildAt(0).getHeight()/2; 
wvScroll.scrollTo(centerX, centerY); 
관련 문제