zoukankan      html  css  js  c++  java
  • android阅读器开发

    android阅读器开发

    package com.duduli.li;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnTouchListener;
    import android.widget.ScrollView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class Ibook2Activity extends Activity {
        private ScrollView sv;
        private TextView tv;
        private RandomAccessFile raf;
        private int scrollViewY = 0;
        private StringBuilder sb;
        private long currentPoint;
        private long fileLeght;
        private boolean flag = true;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    //        sv = (ScrollView) this.findViewById(R.id.scrollView);
            tv = (TextView) this.findViewById(R.id.textView);
            sv = (ScrollView) this.findViewById(R.id.scrollView);
            
            
            
            File file = new File("/sdcard/test.txt");
            try {
                raf = new RandomAccessFile(file, "r");
                fileLeght = raf.length();
                System.out.println("文件总长度: "+fileLeght);
                sb = new StringBuilder();
                for(int i=0; i<=50;i++){
                    if(raf.getFilePointer() != fileLeght){
    //                    string += new String(raf.readLine().getBytes("8859_1"), "gb2312")+("
    ");
                        sb.append(new String(raf.readLine().getBytes("8859_1"), "gb2312")+("
    "));
        //                break;
                }else{
                    break;
                }
                }
                
    //            System.out.println(sb);
                currentPoint = raf.getFilePointer();
                System.out.println(currentPoint);
                tv.setText(sb);
    //            tv.setText(string);
                
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
            sv.setOnTouchListener(new OnTouchListener() {
    
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    // TODO Auto-generated method stub
    //                string = "";
                    if(event.getAction() == MotionEvent.ACTION_UP){
                        if (sv.getScrollY() == 0) {  
                            System.out.println("up");
                            
                        
                        } else if (sv.getScrollY() - scrollViewY < 2 && sv.getScrollY() >= scrollViewY) {  
                            try {
                                
                                if(flag){
                                    System.out.println("begin");
                                    raf.seek(currentPoint);
                                    
                                    sb.delete(0, sb.length());
                                    for(int i=0; i<=50;i++){
                                        if(raf.getFilePointer() != fileLeght){
    //                                        string += new String(raf.readLine().getBytes("8859_1"), "gb2312")+("
    ");
                                            sb.append(new String(raf.readLine().getBytes("8859_1"), "gb2312")+("
    "));
    //                                        break;
                                        }else{
                                            
    //                                        
                                            flag = false;
                                            break;
                                        }
                                }
                                
                                    
                                    
    //                            System.out.println(string);
                                
                                currentPoint = raf.getFilePointer();
                                tv.setText(sb);
    //                            tv.setText(string);
                                sv.scrollTo(0, 0);
                                
                                }
                                
                                
                                
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        } else {  
                            scrollViewY = sv.getScrollY();
    //                        System.out.println(sv.getScrollY());
                        }  
                        if(!flag && (tv.getHeight() - sv.getScrollY() <= 362)){
                                Toast.makeText(getApplicationContext(), "本文已结束",
                                         Toast.LENGTH_SHORT).show();
                        }
                        System.out.println(tv.getHeight());
                        System.out.println(sv.getScrollY());
                        
                    }
                    
                    return false;
                }
                
            });
           }
        
        
        
    }
  • 相关阅读:
    0817JavaScript--------------循环语句
    MySQL数据库的几种引擎
    spring-boot+mybatisPlus+shiro的集成demo 我用了5天
    Nginx 自定义404、500、502 页面
    论Photoshop的正确安装姿势
    记定位一次多线程数据安全问题
    记服务器被黑客攻击事件(肉鸡)
    Spring-Boot 使用 Jedis 操作 Redis
    JavaScript 中 replace方法 替换所有字符串
    关于图文转换的web工具
  • 原文地址:https://www.cnblogs.com/harry335/p/4536146.html
Copyright © 2011-2022 走看看