IT_Programming/Android_Java

[펌][안드로이드] ScrollView 자동 스크롤 애니메이션

JJun ™ 2016. 2. 25. 07:56



 출처: http://tiann.tistory.com/13





이번 포스트에서는 스크롤뷰(ScrollView)의 자동 스크롤 방법에 대해 알아 보도록 하겠습니다.



맨 위 / 아래로 ScrollView 자동 스크롤


ScrollView 의 맨 위/아래로 자동 스크롤 하는 방법은 fullScroll을 사용하는 방법입니다.

인자값으로는 ScrollView.FOCUS_DOWN 과 ScrollView.FOCUS_UP 이 있습니다.

final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
    @Override
    public void run() {
        scrollview.fullScroll(ScrollView.FOCUS_DOWN);
    }
});




ScrollView 자동 스크롤 - 기본 함수 사용


특정 위치만큼만 스크롤 하려면 아래와 같이 smoothScrollBy() 혹은 smoothScrollTo() 함수를 이용하면 됩니다.

final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
    @Override
    public void run() {
        scrollview.smoothScrollBy(0, 800);
    }
});




ScrollView 자동 스크롤 - 스크롤 속도 변경


위에 소개된 함수들은 스크롤 속도가 정해져 있어 속도를 느리게 하고 싶으신 분들은 아래와 같은 방법으로
스크롤 속도를 조절할 수 있습니다.

* scrollTo 는 스크롤 하고 싶은 곳의 Y 값, 만약 맨 안래로 하고 싶으면 scrollView.getBottom() 을 넣어주면 됨.

final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
    @Override
    public void run() {
        ObjectAnimator.ofInt(scrollView, "scrollY",  scrollTo).setDuration(duration).start();
    }
});