📄 pictureprocess.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 + -