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

📄 pictureprocess.java

📁 this small program about implement barcodes in mobile phone
💻 JAVA
字号:
package barcodereader;import barcodereadercore.Processor;import java.io.IOException;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;import javax.microedition.lcdui.game.Sprite;public class PictureProcess implements Runnable{    public Processor processor;    private BarcodeReader barcodereader;    private LoadingScreen loadingscreen;    private Thread loadingscreent, processort;    private char[] character = {'*', '-', '$', '%', ' ', '.', '/', '+', '0',         '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',         'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',         'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};    private String[] characterdata = {"bWbwBwBwb", "bWbwbwBwB", "bWbWbWbwb",         "bwbWbWbWb", "bWBwbwBwb", "BWbwbwBwb", "bWbWbwbWb", "bWbwbWbWb",         "bwbWBwBwb", "BwbWbwbwB", "bwBWbwbwB", "BwBWbwbwb", "bwbWBwbwB",         "BwbWBwbwb", "bwBWBwbwb", "bwbWbwBwB", "BwbWbwBwb", "bwBWbwBwb",         "BwbwbWbwB", "bwBwbWbwB", "BwBwbWbwb", "bwbwBWbwB", "BwbwBWbwb",         "bwBwBWbwb", "bwbwbWBwB", "BwbwbWBwb", "bwBwbWBwb", "bwbwBWBwb",         "BwbwbwbWB", "bwBwbwbWB", "BwBwbwbWb", "bwbwBwbWB", "BwbwBwbWb",         "bwBwBwbWb", "bwbwbwBWB", "BwbwbwBWb", "bwBwbwBWb", "bwbwBwBWb",         "BWbwbwbwB", "bWBwbwbwB", "BWBwbwbwb", "bWbwBwbwB", "BWbwBwbwb",         "bWBwBwbwb"};    private boolean processcondition;        public PictureProcess(BarcodeReader br) {        barcodereader = br;                processor = new Processor(null, character, characterdata, 44);        loadingscreen = new LoadingScreen(processor);                processcondition = true;    }        public void run() {        processcondition = true;                barcodereader.display.setCurrent(loadingscreen);        loadingscreent = new Thread(loadingscreen);        loadingscreent.start();                processor.progress = 0;        processort = new Thread(processor);        processort.start();    }        public void backToMainMenu() {        try{            loadingscreent.join();        }        catch(InterruptedException ie) {            ie.printStackTrace();        }        barcodereader.mainmenu.setFullScreenMode(true);        barcodereader.display.setCurrent(barcodereader.mainmenu);    }        private class LoadingScreen extends Canvas implements Runnable{        private Processor processor;        private Image background, loading;        private String[] wordbuffer;        private int loadingindex;                public LoadingScreen(Processor p) {            processor = p;                        setFullScreenMode(true);                        try{                background = Image.createImage(getClass().getResourceAsStream(                    "/image/takepictureresultbackground.PNG"));                loading = Image.createImage(getClass().getResourceAsStream(                    "/image/loading.PNG"));            }            catch(IOException ioe) {                ioe.printStackTrace();            }                        loadingindex = 0;        }                public void paint(Graphics g) {            barcodereader.graphics.setColor(0, 0, 0);            barcodereader.graphics.fillRect(0, 0, barcodereader.bufferheight,                 barcodereader.bufferwidth);            barcodereader.graphics.drawImage(background, 0, 0,                 Graphics.LEFT | Graphics.TOP);                        barcodereader.graphics.setColor(255, 200, 0);            if(processcondition) {                barcodereader.graphics.drawRegion(loading,                     0, loadingindex*30, 120, 30, Sprite.TRANS_NONE, 28, 80,                     Graphics.LEFT | Graphics.TOP);                barcodereader.graphics.drawString("Loading ( " +                     processor.progress + "% )",                     (176-barcodereader.font.stringWidth("Loading ( " +                     processor.progress + "% )"))/2, 130,                     Graphics.LEFT | Graphics.TOP);            }            else{                barcodereader.graphics.drawString("Failed To Read Barcode",                     (176-barcodereader.font.stringWidth("Failed To Read Barcode"))/2,                     (220-barcodereader.fontheight)/2,                     Graphics.LEFT | Graphics.TOP);            }                        g.setColor(0, 0, 0);            g.fillRect(0, 0, barcodereader.width, barcodereader.height);            g.drawImage(barcodereader.background, barcodereader.halfwidth,                 barcodereader.halfheight, Graphics.HCENTER | Graphics.VCENTER);            g.drawImage(barcodereader.buffer, barcodereader.halfwidth,                 barcodereader.halfheight, Graphics.HCENTER | Graphics.VCENTER);        }                public void run() {            int a, b, c;                        while(processor.progress!=100) {                if(processcondition) {                    loadingindex++;                    if(loadingindex>8) {                        loadingindex = 0;                    }                }                                repaint();                                try{                    Thread.sleep(50);                }                catch(InterruptedException ie) {                    ie.printStackTrace();                }            }                        repaint();                        //debug            /*barcodereader.mainmenu.setFullScreenMode(true);            barcodereader.display.setCurrent(barcodereader.mainmenu);*/                        try{                processort.join();            }            catch(InterruptedException ie) {                ie.printStackTrace();            }                        if(processor.word!=null) {                b = 0;                for(a=0;a<processor.word.length;a++) {                    if(!processor.word[a].equals("")) {                        b++;                    }                }                if(b>0) {                    wordbuffer = new String[b];                    c = 0;                    for(a=0;a<processor.word.length;a++) {                        if(!processor.word[a].equals("")) {                            wordbuffer[c] = processor.word[a];                            c++;                        }                    }                    processor.word = wordbuffer;                    barcodereader.mainmenu.result.wordnumber =                         processor.word.length;                    barcodereader.mainmenu.result.wordindex = 0;                    barcodereader.mainmenu.result.setFullScreenMode(true);                    barcodereader.display.setCurrent(                        barcodereader.mainmenu.result);                }                else{                    processcondition = false;                    repaint();                }            }            else{                processcondition = false;                repaint();            }        }                public void keyPressed(int KeyCode) {            if(!processcondition) {                backToMainMenu();            }        }    }}

⌨️ 快捷键说明

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