亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? greetingcardscreen.java

?? greetingcard是手機賀卡的制作軟件。小程序
?? JAVA
字號:
import java.util.Vector;

import java.io.DataInputStream;

import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;

import com.nokia.mid.ui.FullCanvas;

public class GreetingCardScreen extends FullCanvas implements Runnable {
    
    private GreetingCardPlayer cardPlayer;
    private GreetingCardImage cardImage;
    private String textOnScreen;
    private byte state;

    private int scrollCursor;
    private String[] scrollTextLines;
    private int bgc = 0x000040B4;
    private int tfgc = 0x0000AAFF;
    private int tbgc = 0;
    private int thc = 0x00ffff00;
    private Font font = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);
    private int msgTextSeq = 0;
    private String userMsg = "";
    

    public GreetingCardScreen(GreetingCardPlayer cardPlayer, GreetingCardImage cardImage, DataInputStream dis) 
    {
        this.cardPlayer = cardPlayer;
        this.cardImage = cardImage;
        state = 0;
    }

    public void initparam(String sMsg, String sBGC, String sTFGC, String sTBGC, String sTHC, String sFont) 
    {
    	if(sFont != null && sFont.length() > 0) 
    	{
            int iFont = Integer.parseInt(sFont);
            int face = (iFont & (byte)0xC0) >> 6;
            switch(face) 
            {
                case 0:
                    face = Font.FACE_MONOSPACE;
                    break;
                case 1:
                    face = Font.FACE_PROPORTIONAL;
                    break;
                case 2:
                    face = Font.FACE_SYSTEM;
                    break;
            }
            
            int size = (iFont & (byte)0x30) >> 4;
            switch(size) 
            {
                case 0:
                    size = Font.SIZE_SMALL;
                    break;
                case 1:
                    size = Font.SIZE_MEDIUM;
                    break;
                case 2:
                    size = Font.SIZE_LARGE;
                    break;
            }
            
            int style = 0;
            if((iFont & 0x01) != 0)
            {
                style |= Font.STYLE_PLAIN;
            }
            if((iFont & 0x02) != 0)
            {
                style |= Font.STYLE_BOLD;
            }
            if((iFont & 0x04) != 0)
            {
                style |= Font.STYLE_ITALIC;
            }
            if((iFont & 0x08) != 0)
            {
                style |= Font.STYLE_UNDERLINED;
            }
        }
        
        if(sBGC != null && sBGC.length() > 0)
        {
            bgc = Integer.parseInt(sBGC);
        }
        
        if(sTFGC != null && sTFGC.length() > 0)
        {
            tfgc = Integer.parseInt(sTFGC);
        }
        
        if(sTBGC != null && sTBGC.length() > 0)
        {
            tbgc = Integer.parseInt(sTBGC);
        }
        
        if(sTHC != null && sTHC.length() > 0)
        {
            thc = Integer.parseInt(sTHC);
        }
        
        //sMsg = "\u60A8\u5C06";
        if(sMsg != null && sMsg.length() > 0) 
        {
        	userMsg = sMsg;
        }

    }

    
    public boolean init() 
    {
        state = 1; // Init Page
        return true;
    }
    
    
    private void loadScrollText() 
    {
        if(scrollTextLines != null) 
        {
            state = 2;	// Page 3 with user message
            scrollCursor = getHeight() / 2;
            Thread t = new Thread(this);
            t.start();
        } 
        else 
        {
        	state = 4; // Normal Page
        }
        repaint();
        serviceRepaints();
    }
    

        
    private void nextPage()
    {
    	if(msgTextSeq == 0)// Page 2
    	{
    		cardImage.secondPage();
    		textOnScreen = "";
    		msgTextSeq++;
            repaint();
            serviceRepaints();
    	}
    	else if(msgTextSeq == 1) // Page 3 with user message
    	{
    		msgTextSeq++;
    		cardImage.thirdPage();
    		textOnScreen = userMsg;
    		scrollTextLines = wrapText(font, getWidth(), userMsg);
    		loadScrollText();
    	}
    	else // Page 1
    	{
    		state = 4;
    		msgTextSeq = 0;
    		textOnScreen = "";
    		cardImage.redofirstPage();
            repaint();
            serviceRepaints();    		
    	}
    }
    
    
    public void start() 
    {
	    System.gc();
	    textOnScreen = "";
        cardImage.firstPage();
        state = 4;
        repaint();
        serviceRepaints();
    }
    
    
    private void quit() 
    {
        cardPlayer.exit();
    }
    
    
    private String[] wrapText(Font f, int allowWidth, String sText) 
    {
        allowWidth -= 10;
        
        char[] ca = new char[sText.length()];
        sText.getChars(0, sText.length(), ca, 0);
        if(f.charsWidth(ca, 0, ca.length) <= allowWidth) 
        {
            String[] s = new String[1];
            s[0] = sText;
            return s;
        }
        
        Vector v = new Vector();
        
        int textWidth = 0;
        int breakIdx = -1;
        for(int i = 0; i < sText.length(); i++) 
        {
            char c = sText.charAt(i);
            textWidth += f.charWidth(c);
            if(c == '\n') 
            {
               String line = sText.substring(0, i);
               if(sText.length() > line.length())
                  sText = sText.substring(line.length()+1);
               else
                  sText = "";
                textWidth = 0;
                i = -1;
                v.addElement(line);
            } 
            else if(textWidth <= allowWidth) 
            {
                if(c == ' ' || c > 127)
                {
                	breakIdx = i;
                }
            } 
            else 
            {
                String line = "";
                if(breakIdx < 0) {
                    line = sText.substring(0, i);
                } else {
                    line = sText.substring(0, breakIdx+1);
                }
                if(sText.length() > line.length()) {
                    sText = sText.substring(line.length());
                } else {
                    sText = "";
                }
                textWidth = 0;
                breakIdx = i = -1;
                v.addElement(line);
            }
        }
        
        if(sText.length() > 0)
        {
            v.addElement(sText);
        }
        
        if(v.size() == 0) 
        {
            return null;
        }
        
        String[] lines = new String[v.size()];
        for(int i = 0; i < v.size(); i++) 
        {
            lines[i] = (String)v.elementAt(i);
        }
        
        v = null;
        System.gc();
        
        return lines;
    }

    
    private void drawString(Graphics g, String s, int fgc, int bgc, int x, int y, int anchor) 
    {
    	g.setColor(bgc);
    	g.drawString(s, x+1, y+1, anchor);
    	g.drawString(s, x-1, y-1, anchor);
    	g.drawString(s, x+1, y, anchor);
    	g.drawString(s, x, y+1, anchor);
    	g.drawString(s, x-1, y, anchor);
    	g.drawString(s, x, y-1, anchor);
    	g.drawString(s, x+1, y-1, anchor);
    	g.drawString(s, x-1, y+1, anchor);
        g.setColor(fgc);
        g.drawString(s, x, y, anchor);
    }

    private void paintPlaying(Graphics g) 
    {
    	g.setColor(0);
    	g.setClip(0, 0, getWidth(), getHeight());
    	g.fillRect(0, 0, getWidth(), getHeight());

    	cardImage.drawCardScreen(g, getWidth(), getHeight());
    	
    	int h = font.getHeight();
    	int y2 = getHeight() - h - 2;
    	int y1 = y2 - h - 2;
    	g.setFont(font);
    	if(textOnScreen != null)
    	{
        		drawString(g, textOnScreen, tfgc, tbgc, 3, y1, Graphics.TOP|Graphics.LEFT);
    	}
    }

    private void paintLoading(Graphics g) 
    {
        g.setColor(0);
        g.fillRect(0, 0, getWidth(), getHeight());
        
        if(cardImage.currentScreen != null)
        {
            g.drawImage(cardImage.currentScreen, getWidth()/2, getHeight()/2, Graphics.HCENTER|Graphics.VCENTER);
        }
    }
    
    private void paintScrollText(Graphics g) 
    {
        g.setFont(font);
        g.setColor(bgc);
        g.fillRect(0, 0, getWidth(), getHeight());

        if(cardImage.currentScreen != null)
        {
        	g.drawImage(cardImage.getNextPage(), getWidth()/2, getHeight()/2, Graphics.HCENTER|Graphics.VCENTER);
        }
        
        int h = font.getHeight()+2;
        int y = scrollCursor;
        
        for(int i = 0; i < scrollTextLines.length; i++) 
        {
            if(h*2+y >= 0) 
            {
            	drawString(g, scrollTextLines[i], thc, tbgc, getWidth()/2, y, Graphics.TOP|Graphics.HCENTER);
            }
            if(i == scrollTextLines.length - 1 && y < 10) 
            {
            	scrollCursor = getHeight() / 2;
                break;
            }
            y += h;
            if(y > getHeight())
            {
            	break;
            }
        }
    }
    
    /**
     * paint
     */
    public void paint(Graphics g) 
    {
        switch(state) 
        {
            case 0:
                paintLoading(g);
                break;
            case 2:
                paintScrollText(g);
                break;
            case 4:
                paintPlaying(g);
                break;
        }

    }
    
 
    
    /**
     * Called when a key is pressed.
     */
    protected  void keyPressed(int keyCode) 
    {
        int action = getGameAction(keyCode);
        if(keyCode == KEY_POUND || keyCode == KEY_STAR)
        {
        	quit();
        }
        
        if(state == 4) 
        {
        	nextPage();
        }
        else
        {
        	nextPage();
        	repaint();        	
        }

    }
        
    public void playScrollText() 
    {
        while(state == 2 && scrollTextLines != null) 
        {
            repaint();
            scrollCursor -= 1;
            try { Thread.sleep(30); } catch(Exception e) {}
        }
    }
    
    
    public void run() 
    {
        if(state == 2)
        {
            playScrollText();
        }
    } 

            
	public Image resizeImage(Image image) 
    {
		int srcWidth = image.getWidth();
		int srcHeight = image.getHeight();
		
		int newWidth = 0;
		int newHeight = 0;
		newWidth = getWidth() - 15;
		newHeight = getHeight() - 15;
    	 
		if(newWidth < 128 || newWidth < 128)
		{
			newWidth = srcWidth;
			newHeight = srcHeight;
		}
		Image newImage = Image.createImage(newWidth, newHeight);
		Graphics g = newImage.getGraphics();

		for (int y = 0; y < newHeight; y++) 
		{
			for (int x = 0; x < newWidth; x++) 
			{
				g.setClip(x, y, 1, 1);
				int dx = x * srcWidth / newWidth;
				int dy = y * srcHeight / newHeight;
				g.drawImage(image, x - dx, y - dy,
						Graphics.LEFT | Graphics.TOP);
			}
		}
		
		Image immutableImage = Image.createImage(newImage);
		
		return immutableImage;
    }
  
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚男人的天堂| 欧美tickle裸体挠脚心vk| 91精品国产综合久久婷婷香蕉| 日韩精品影音先锋| 亚洲丝袜精品丝袜在线| 国内成人自拍视频| 欧美精品日韩综合在线| 最新国产精品久久精品| 精品一区二区免费视频| 欧美日韩一本到| 自拍偷拍亚洲欧美日韩| 国产真实精品久久二三区| 欧美性色欧美a在线播放| 亚洲国产精品t66y| 狠狠色狠狠色综合| 在线播放91灌醉迷j高跟美女| 亚洲欧洲日产国产综合网| 精品一区二区成人精品| 欧美久久免费观看| 亚洲国产日韩av| 欧美亚洲一区二区三区四区| 成人免费视频在线观看| 成人app网站| 国产精品色在线观看| 国内精品国产成人国产三级粉色 | 国产99久久久久| 日韩欧美国产麻豆| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美亚洲禁片免费| 亚洲成人tv网| 欧美日韩在线播放三区四区| 夜夜嗨av一区二区三区| 91亚洲男人天堂| 亚洲精品videosex极品| 欧美性生活久久| 午夜精彩视频在线观看不卡| 欧美日韩亚洲综合| 三级在线观看一区二区 | 久久精品av麻豆的观看方式| 欧美日韩视频在线第一区 | 欧美亚洲愉拍一区二区| 亚洲在线免费播放| 欧美群妇大交群的观看方式| 午夜视频一区二区三区| 欧美日韩不卡一区二区| 裸体歌舞表演一区二区| 欧美精品一区二区三区一线天视频| 国产一区二区三区免费| 欧美国产精品一区二区三区| 99精品欧美一区| 一区二区日韩av| 在线综合+亚洲+欧美中文字幕| 久久精品免费观看| 日本一二三四高清不卡| 色综合网站在线| 五月激情丁香一区二区三区| 日韩欧美一区中文| 粉嫩在线一区二区三区视频| 伊人性伊人情综合网| 日韩一区二区三区观看| 粉嫩av一区二区三区在线播放| 亚洲人成在线播放网站岛国| 欧美日韩中文一区| 国产成人在线免费观看| 自拍偷拍国产亚洲| 欧美一级生活片| av电影天堂一区二区在线| 日韩精品视频网站| 欧美国产乱子伦 | 中文幕一区二区三区久久蜜桃| gogo大胆日本视频一区| 日本中文字幕不卡| 亚洲欧洲日本在线| 欧美xxxxxxxx| 91久久人澡人人添人人爽欧美| 老司机免费视频一区二区| 亚洲免费视频中文字幕| 精品成人免费观看| 欧美性猛交xxxx黑人交| 国产成人午夜高潮毛片| 免费观看久久久4p| 一区二区理论电影在线观看| 久久精品免视看| 日韩亚洲欧美成人一区| 91高清视频在线| 懂色av中文字幕一区二区三区 | 亚洲免费成人av| 精品盗摄一区二区三区| 欧美色大人视频| 91热门视频在线观看| 国精品**一区二区三区在线蜜桃| 亚洲午夜视频在线观看| 国产精品理伦片| 久久久久久免费毛片精品| 91精品国产色综合久久不卡电影| 一本久道久久综合中文字幕| 国产精品18久久久久久久网站| 日韩精品欧美成人高清一区二区| 中文字幕五月欧美| 国产精品理论片在线观看| 国产视频一区不卡| 欧美精品一区二区三区视频| 欧美变态口味重另类| 欧美一区二区三区在线观看| 欧美群妇大交群的观看方式| 在线视频一区二区免费| 色成人在线视频| 色天天综合色天天久久| 一本一道综合狠狠老| av福利精品导航| 成人av影视在线观看| 成人国产在线观看| 不卡电影免费在线播放一区| 成人免费视频一区二区| 成人网在线免费视频| 成人晚上爱看视频| 粉嫩一区二区三区在线看| 国产成a人亚洲精| 丁香婷婷综合网| 白白色亚洲国产精品| 91欧美激情一区二区三区成人| 97久久精品人人做人人爽50路| 波多野结衣中文字幕一区| 99久久精品国产毛片| 91视频一区二区| 欧美日韩黄色一区二区| 国产精品网站一区| 亚洲欧美激情小说另类| 亚洲曰韩产成在线| 日韩专区中文字幕一区二区| 精品一区在线看| 高清视频一区二区| 一本在线高清不卡dvd| 欧美男女性生活在线直播观看| 日韩免费高清av| 欧美国产精品久久| 亚洲精品成人悠悠色影视| 奇米一区二区三区av| 国产中文字幕一区| 日本韩国欧美三级| 欧美精三区欧美精三区| 欧美精品一区二区高清在线观看| 国产女人18毛片水真多成人如厕 | 国产三级精品三级| 亚洲视频免费在线观看| 亚洲国产aⅴ天堂久久| 视频一区二区中文字幕| 国产成人啪午夜精品网站男同| www.日韩av| 在线不卡一区二区| 亚洲国产精品精华液2区45| 亚洲制服丝袜在线| 国内成人精品2018免费看| 91玉足脚交白嫩脚丫在线播放| 69久久99精品久久久久婷婷| 中文字幕成人在线观看| 亚洲国产日日夜夜| 成人一道本在线| 日韩一区二区免费在线电影| 国产精品久久久久婷婷二区次| 午夜视频在线观看一区| 成人av网站免费观看| 51午夜精品国产| 自拍偷拍欧美激情| 国产一区二区三区日韩| 欧美日韩亚洲综合一区| 国产精品网曝门| 精品中文字幕一区二区| 在线日韩av片| 国产欧美精品国产国产专区 | 一区二区在线观看av| 国内精品免费在线观看| 欧美精品免费视频| 亚洲欧美日韩国产另类专区| 国产精品羞羞答答xxdd| 日韩免费视频一区二区| 香蕉加勒比综合久久| 色悠悠亚洲一区二区| 久久精品在线免费观看| 久久99精品国产| 欧美人伦禁忌dvd放荡欲情| 一区二区在线观看视频| 风流少妇一区二区| 久久久久久久性| 国内不卡的二区三区中文字幕| 8x8x8国产精品| 亚洲不卡av一区二区三区| 972aa.com艺术欧美| 亚洲国产精品v| 成人黄色国产精品网站大全在线免费观看| 91麻豆精品国产自产在线观看一区| 亚洲精品乱码久久久久久日本蜜臀| 国产精品一色哟哟哟| 26uuu另类欧美亚洲曰本| 蜜桃av一区二区在线观看| 91麻豆精品国产综合久久久久久| 丝袜脚交一区二区| 欧美一区二区视频观看视频| 日本美女一区二区三区| 日韩一区二区三区视频在线观看|