Android ScrollView 实现小说阅读界面自动滚屏

前言

最近在做一个阅读器,准备实现一个自动滚屏来方便阅读

实现

在xml中放入一个ScrollView 滑动条,滑动条里面放一个文本框

 <RelativeLayout
        android:id="@+id/relativeLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Button
            android:id="@+id/auto_scroll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom='0dp'
            android:text="Button" />

        <ScrollView
            android:id="@+id/scrollView"
            android:layout_width="match_parent"
            android:layout_height="820dp">

            <TextView
                android:id="@+id/tvTxt"
                android:layout_width="match_parent"
                android:layout_height="800dp"
                android:layout_marginStart="10dp"
                android:layout_marginEnd="10dp"
                android:text="Hello World!"
                android:textSize="24sp" />

        </ScrollView>
    </RelativeLayout>

在对应的activity中分别定义一个ScrollView、textview对象

	private ScrollView scrollView;
    private TextView textView;
    private RelativeLayout relativeLayout;
    private Button auto_scoll;
    private Handler mHandler = new Handler();
//并初始化
	scrollView=findViewById(R.id.scrollView);
    textView = findViewById(R.id.tvTxt);
    auto_scoll=findViewById(R.id.auto_scroll);
    relativeLayout=findViewById(R.id.relativeLayout);

用线程来实现自动滚动,点击按钮开始,再次点击停止

private Runnable ScrollRunnable = new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            int off = relativelayout.getMeasuredHeight() - scrollView.getHeight();// 判断高度
//            if (off > 0) {
                scrollView.scrollBy(0,100);
                if (scrollView.getScaleY() == off) {
                    Thread.currentThread().interrupt();
                } else {
                    mHandler.postDelayed(this, 1000);
                }
//            }
        }
    };

效果

Android ScrollView 实现小说阅读界面自动滚屏_第1张图片

不足

缺陷在于,滚动的速度并不能控制(我当时没找到合适方法),各位看官有好的意见可以留言交流。

你可能感兴趣的:(Android,android,安卓,移动开发,android,studio)