backlightcanvas.java

来自「GPS Track connects to a GPS and records 」· Java 代码 · 共 71 行

JAVA
71
字号
// J2ME GPS Track
// Copyright (C) 2006 Dana Peters
// http://www.qcontinuum.org/gpstrack

package org.qcontinuum.gpstrack;

import javax.microedition.lcdui.*;
import java.util.*;

public class BacklightCanvas extends Canvas {

    private Timer mTimer;
    private Displayable mLastDisplayable;
    private int mTimeoutSeconds;
    private Displayable mBacklightCanvas;
    private boolean mBacklightDisabled;
    
    private final static int CHECKSECONDS = 5;
    
    public BacklightCanvas() {
        mBacklightCanvas = this;
        mBacklightDisabled = true;
        mTimer = new Timer();
        mTimer.schedule(new BacklightTimerTask(), 1, CHECKSECONDS * 1000);
    }
    
    public class BacklightTimerTask extends TimerTask {
        public void run() {
            Displayable currentDisplayable = GpsTrack.getCurrent();
            if (currentDisplayable != mBacklightCanvas) {
                if (currentDisplayable == mLastDisplayable
                        && !(currentDisplayable instanceof Alert)
                        && !(currentDisplayable instanceof TextBox)) {
                    mTimeoutSeconds += CHECKSECONDS;
                    Preferences preferences = GpsTrack.getPreferences();
                    int backlightSeconds = preferences.getBacklightSeconds();
                    if (backlightSeconds != 0) {
                        mBacklightDisabled = false;
                        if (mTimeoutSeconds >= backlightSeconds) {
                            mTimeoutSeconds = 0;
                            GpsTrack.flashBackLight(0); // turn backlight off
                            GpsTrack.display(mBacklightCanvas);
                        } else
                            GpsTrack.flashBackLight(CHECKSECONDS * 1000 * 2); // turn backlight on
                    } else {
                        if (!mBacklightDisabled)
                            GpsTrack.flashBackLight(CHECKSECONDS * 1000 * 2); // keep backlight on
                    }
                } else {
                    mTimeoutSeconds = 0;
                    mLastDisplayable = currentDisplayable;
                    if (!mBacklightDisabled)
                        GpsTrack.flashBackLight(CHECKSECONDS * 1000 * 2); // keep backlight on
                }
            }
        }
    }

    public void paint(Graphics g) {
        // black out display
        g.setGrayScale(0);
        g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
    }
    
    protected void keyPressed(int keyCode) {
        GpsTrack.flashBackLight(CHECKSECONDS * 1000 * 2);
        GpsTrack.display(mLastDisplayable);
    }

}

⌨️ 快捷键说明

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