⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 splashcanvas.java

📁 anyview手机小说阅览器的开源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            if (showMenu) {
                if (currentWindow == null) { //当前没有打开菜单项窗口
                    menu.keyFire();
                    switch (menu.getSelectedIndex()) {
                    case 0: //打开文件
                        openFile = null;
                        currentWindow = null;

                        openFile = new FileSelector("打开文件", itemFiles,
                                realFiles);
                        currentWindow = openFile;
                        break;
                    case 1: //字体大小
                        fontSize = null;
                        currentWindow = null;

                        fontSize = new Selector("请使用:", itemFonts);
                        currentWindow = fontSize;
                        break;
                    case 2: //文字颜色
                        colorSelector = null;
                        currentWindow = null;

                        colorSelector = new ColorSelector();
                        currentWindow = colorSelector;
                        break;
                    case 3: //背景颜色
                        colorSelector = null;
                        currentWindow = null;

                        colorSelector = new ColorSelector();
                        currentWindow = colorSelector;
                        break;
                    case 4: //行 间 距
                        lineSpace = null;
                        currentWindow = null;

                        lineSpace = new Selector("将行间距设为:", itemLineSpace);
                        currentWindow = lineSpace;
                        break;
                    case 5: //阅读方式
                        readType = null;
                        currentWindow = null;

                        readType = new Selector("我喜欢:", itemReadType);
                        currentWindow = readType;
                        break;
                    case 6: //翻页设置
                        flipMethod = null;
                        currentWindow = null;

                        flipMethod = new Selector("翻页时,", itemFlip);
                        currentWindow = flipMethod;
                        break;
                    case 7: //自动翻页
                        autoFlip = null;
                        currentWindow = null;

                        autoFlip = new Selector("自动翻页时间间隔:", itemAutoFlip);
                        currentWindow = autoFlip;
                        break;
                    case 8: //使用说明
                        break;
                    case 9: //退出程序
                        destroy();
                        AnyView.av.exit();
                        break;
                    }
                } else { //交由当前窗口处理
                    currentWindow.keyFire();
                    if (menu.getSelectedIndex() == 0) {
                        FileSelector fs = (FileSelector) currentWindow;
                        int i = fs.getSelectedIndex();
                        destroy();
                        AnyView.av.switchIav(realFiles[i]);
                        return;
                    }
                }
            } else {
                showMenu = true;
                menu = null;
                menu = new Menu(items);
            }
        }
         }*/

    //根据屏幕方式映射按键
    private int mapKey(int keyCode) {
        if (AnyView.readType == 1) { //横屏
            switch (keyCode) {
            case -1: //up
                return -4; //right
            case -2: //down
                return -3; //left
            case -3: //left
                return -1; //up
            case -4: //right
                return -2; //down
            }
        }
        return keyCode;
    }


    protected void pointerPressed(int x, int y) {
        if (currentWindow == null) { //处理菜单事件
            menu.pointerPressed(x, y);
        } else {
            //System.out.println("currentWindow.pointerPressed(x, y);");
            startTime = System.currentTimeMillis();
            currentWindow.pointerPressed(x, y);
        }
        repaint();
    }

    protected void pointerDragged(int x, int y) {

    }

    protected void pointerReleased(int x, int y) {
        if (message.getWindowState() == AbstractWindow.OPENING) {
            message.setWindowState(AbstractWindow.HIDE);
            repaint();
            return;
        }

        if (currentWindow == null) { //处理菜单事件
            menu.pointerReleased(x, y);
            if (menu.getTouchEvent()) { //有效事件
                if (menu.getSelectedIndex() != 8) {
                    openSubWindow(menu.getSelectedIndex());
                } else { //退出程序
                    saveRec();
                    destroy();
                    AnyView.av.exit();
                    return;
                }
            } else { //重设菜单位置
                //menu.setLocation(x, y);
            }
        } else {
            currentWindow.pointerReleased(x, y);
            if (currentWindow.getTouchEvent()) {
                switch (menu.getSelectedIndex()) {
                case 0: //历史文件
                    openHistory(System.currentTimeMillis() - startTime);
                    break;
                case 1: //打开文件
                    openFiles();
                    return;
                case 2: //字体大小
                    setFontSize();
                    break;
                case 3: //文字颜色
                    setFontColor();
                    break;
                case 4: //背景颜色
                    setBackColor();
                    break;
                case 5: //行 间 距
                    setLineSpace();
                    break;
                case 6: //阅读方式
                    setReadType();
                    break;
                case 7: //使用说明
                    readme();
                    break;
                }
            } else { //关闭当前的子窗口
                //System.out.println("state = " + currentWindow.getWindowState());
                if (currentWindow.getWindowState() == AbstractWindow.CLOSED) {
                    currentWindow = null;
                    System.gc();
                    showMenu = true;
                }
            }
        }
        repaint();
    }

    /**
     * 处理菜单事件,打开子窗口
     * @param index int
     */
    private void openSubWindow(int index) {
        switch (index) {
        case 0: //历史文件
            openHistory = null;
            currentWindow = null;
            System.gc();
            openHistory = new Selector("阅读历史", itemFiles);
            currentWindow = openHistory;
            break;
        case 1: //打开文件
            openFile = null;
            currentWindow = null;
            System.gc();
            openFile = new FileSelector(this);
            currentWindow = openFile;
            break;
        case 2: //字体大小
            fontSize = null;
            currentWindow = null;
            System.gc();

            fontSize = new Selector("请使用:", itemFonts,
                                    AnyView.fontSize);
            currentWindow = fontSize;
            break;
        case 3: //文字颜色
            colorSelector = null;
            currentWindow = null;
            System.gc();

            colorSelector = new ColorSelector(AnyView.frontColor);
            currentWindow = colorSelector;
            break;
        case 4: //背景颜色
            colorSelector = null;
            currentWindow = null;
            System.gc();

            colorSelector = new ColorSelector(AnyView.backColor);
            currentWindow = colorSelector;
            break;
        case 5: //行 间 距
            lineSpace = null;
            currentWindow = null;
            System.gc();

            lineSpace = new Selector("将行间距设为:", itemLineSpace,
                                     AnyView.lineSpace);
            currentWindow = lineSpace;
            break;
        case 6: //阅读方式
            readType = null;
            currentWindow = null;
            System.gc();

            readType = new Selector("我喜欢:", itemReadType,
                                    AnyView.readType);
            currentWindow = readType;
            break;
        case 7: //使用说明
            break;
        case 8: //退出程序
            break;
        }
        if (index == 7) {
            showMenu = true;
        } else {
            showMenu = false;
        }
    }

    private void openHistory(long time) {
        //System.out.println(time);
        if (openHistory.getWindowState() == AbstractWindow.OPENING) {
            return;
        }

        /*for (int i = 0; i < allBookMarks.size(); i++) {
            BookMark bm = (BookMark) allBookMarks.elementAt(i);
            System.out.println(bm.getFilename());
                 }*/
        int index = openHistory.getSelectedIndex();
        String filename = realFiles[index];
        if (time > 3000l) {
            deleteHistory = true;
            allBookMarks.removeElementAt(allBookMarks.size() - 1 - index);
            openHistory = null;
            currentWindow = null;
            System.gc();

            itemFiles = new String[allBookMarks.size()];
            realFiles = new String[allBookMarks.size()];
            int len = allBookMarks.size() - 1;
            //反向显示历史文件列表
            for (int i = len; i > -1; i--) {
                BookMark ibm = (BookMark) allBookMarks.elementAt(i);
                realFiles[len - i] = ibm.getFilename();
                itemFiles[len -
                        i] = realFiles[len - i].substring(realFiles[len - i].
                        lastIndexOf('/') + 1);
            }

            openHistory = new Selector("阅读历史", itemFiles);
            currentWindow = openHistory;
            repaint();
            return;
        }

        FileSystemReader fsr = new FileSystemReader(filename);
        if (fsr.isDirectory() || !fsr.exists()) {
            message.showMessage("错误", new String[] {"文件不存在!"});

            return;
        }
        saveRec();
        destroy();
        if (filename.toLowerCase().endsWith(".iav")) {
            AnyView.av.switchIav(filename);
        } else if (filename.toLowerCase().endsWith(".txt")) {
            AnyView.av.switchTxt(filename);
        }
    }

    private void openFiles() {

    }

    private void setFontSize() {
        if (fontSize.getWindowState() == AbstractWindow.OPENING) {
            return;
        }

        AnyView.fontSize = fontSize.getSelectedIndex();
        currentWindow.destroy();
        currentWindow = null;

        if (AnyView.fontSize != AnyView.cf.CurrentFontSize) {
            AnyView.cf.setFontSize(AnyView.fontSize);
            menu = null;
            System.gc();
            menu = new Menu(items);
            showMenu = true;
        }
    }

    private void setFontColor() {
        if (colorSelector.getWindowState() == AbstractWindow.OPENING) {
            return;
        }

        AnyView.frontColor = colorSelector.getSelectedIndex();
        currentWindow.destroy();
        currentWindow = null;
        showMenu = true;
    }

    private void setBackColor() {
        if (colorSelector.getWindowState() == AbstractWindow.OPENING) {
            return;
        }

        AnyView.backColor = colorSelector.getSelectedIndex();
        currentWindow.destroy();
        currentWindow = null;
        showMenu = true;
    }

    private void setLineSpace() {
        if (lineSpace.getSelectedIndex() < 0) {
            return;
        }

        AnyView.lineSpace = lineSpace.getSelectedIndex();
        currentWindow.destroy();
        currentWindow = null;
        showMenu = true;
    }

    private void setReadType() {
        if (readType.getSelectedIndex() < 0) {
            return;
        }

        AnyView.readType = readType.getSelectedIndex();
        currentWindow.destroy();
        currentWindow = null;

        menu = null;
        System.gc();
        menu = new Menu(items);
        showMenu = true;
    }

    private void readme() {
        showMenu = true;
    }

    void saveRec() {
        if (!deleteHistory) {
            return;
        }

        Record.deleteRecordStore("avbookmark");
        Record record = new Record("avbookmark");
        record.open();

        for (int i = 0; i < allBookMarks.size() && i < 8; i++) { //将老的书签写入RMS
            record.addRecord(((BookMark) allBookMarks.elementAt(i)).getBytes());
        }
        record.close();
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -