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

📄 firetheme.java

📁 wap浏览器 日程安排 Rss 棋牌游戏
💻 JAVA
字号:
/** *  */package gr.fire.ui;import gr.fire.core.FireScreen;import gr.fire.core.Theme;import gr.fire.util.Log;import java.io.IOException;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;/* * Fire (Flexible Interface Rendering Engine) is a set of graphics widgets for creating GUIs for j2me applications.  * Copyright (C) 2006-2008 Bluevibe (www.bluevibe.net) * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA *  *//** * @author padeler * */public class FireTheme extends Theme{	/**	 * The file name of the theme.	 */	private String themeFile;	/**	 * The name of the backgroung.	 */	private String themeBg;			private Image defaultGradImage,defaultBgImageSrc,defaultLogo,defaultBorder;		public FireTheme(String themeFile) throws IOException	{		this.themeFile=themeFile;		loadTheme();				if(defaultLogo!=null && (defaultLogo.getHeight()+2)> decorTop)		{			decorTop= defaultLogo.getHeight()+2;		}	}			public Image getLogo()	{		return defaultLogo;	}			private void loadTheme() throws IOException	{		defaultGradImage=null;		defaultBgImageSrc=null;		defaultLogo=null;		defaultBorder=null;				// first check record store for a custom theme.				Image img = Image.createImage(getClass().getResourceAsStream(themeFile));						defaultLogo = Image.createImage(50,15);		Graphics g = defaultLogo.getGraphics();		g.drawImage(img,0,0,Graphics.TOP|Graphics.LEFT);		int bgrad[]= new int[15];		img.getRGB(bgrad,0,15,35,16,15,1);		defaultBorder = Image.createRGBImage(bgrad,1,15,false);		int []palete = new int[50];				img.getRGB(palete,0,50,0,16,50,1);		int tmp = palete[12];				if((tmp&0x00FFFFFF)==0x00FFFFFF) // show grad		{			bgrad= new int[50];			img.getRGB(bgrad,0,50,0,15,50,1);			defaultGradImage = Image.createRGBImage(bgrad,50,1,true);		}		else		{			Log.logInfo("Grad background is not displayed.");			defaultGradImage=null;		}			defaultColor = palete[0];				labelColor = palete[1];		softKeyFgColor = labelColor;		scrollColor = palete[2];		linkColor = palete[3];		selectedLinkColor = palete[4];				tmp = palete[5];		selectedLinkBgColor = tmp;				rulerColor1 = palete[6];		rulerColor2 = palete[7];		scrollRulerColor1= palete[8];//		decorRightColor = scrollRulerColor1;		decorBottomColor = scrollRulerColor1;		scrollRulerColor2 = palete[9];		scrollRulerColor3 = palete[10];				primaryFillColor = palete[13];				secondaryFillColor = palete[14];				borderColor = palete[15];		pointerColor = palete[16];		secondaryPointerColor = palete[17];		tooltipFgColor = palete[18];		tooltipBgColor = palete[19];						tmp = palete[11];		if((tmp&0x00FFFFFF)==0x00FFFFFF) // show bg image		{			img = Image.createImage(getClass().getResourceAsStream(themeBg));			defaultBgImageSrc = img;		}		else		{			defaultBgImageSrc = null;		}						/* **** Hack for Motorola phones ********** Thanks to Maxim Blagov */		/* **** Some (if not all) Motorola phones, return "j2me" to getProperty("microedition.platform") */ 		String platform = null; 		String prop = System.getProperty("com.mot.carrier.URL"); 		if (prop != null) {			platform = "motorola"; 		} else {			try{				Class.forName("com.motorola.graphics.j3d.Graphics3D"); 				platform = "motorola"; 			}catch (Throwable e) {}		}		 		if(platform==null) // ok its propably not a motorola phone. 		{			platform=System.getProperty("microedition.platform"); 				}	}		public Image getDecorBottomTexture()	{		return defaultBorder;	}	public Image getDecorTopTexture()	{				return defaultBorder;	}			private void prepareDecorationImages(int width,int height)	{		int color= defaultColor;		Image gradImage = defaultGradImage;		Image bg = defaultBgImageSrc;		boolean tiled =false;		boolean vertical=true;				Image img = Image.createImage(width,height);		Graphics g = img.getGraphics();		if(gradImage==null)		{			g.setColor(color);			g.fillRect(0,0,width,height);		}		else		{			int srcLen = gradImage.getWidth() * gradImage.getHeight();			int srcColorMap[] = new int[srcLen];			gradImage.getRGB(srcColorMap,0,gradImage.getWidth(),0,0,gradImage.getWidth(),gradImage.getHeight());						int len;			if(vertical) len = width;			else len = height;						int []colorMap = new int[len];			for(int i=0;i<len;++i)			{				colorMap[i] = srcColorMap[(i*srcLen)/len];			}			srcColorMap=null;						if(vertical)			{				int i;				for(i=0;i<width;++i)				{					g.setColor(colorMap[i]);					g.drawLine(i,0,i,height);				}			}			else			{				int i;				for(i=decorTop;i<len-decorBottom;++i)				{					g.setColor(colorMap[i-decorTop]);					g.drawLine(0,i,width,i);				}			}		}				if(defaultBorder!=null)		{			// draw top border.			int len = defaultBorder.getWidth() * defaultBorder.getHeight();			int colorMap[] = new int[len];			defaultBorder.getRGB(colorMap,0,defaultBorder.getWidth(),0,0,defaultBorder.getWidth(),defaultBorder.getHeight());			int i;			for(i=0;i<(decorTop-1) && i<len ;++i)			{				g.setColor(colorMap[i]&0x00FFFFFF);				g.drawLine(0,i,width,i);			}			for(i=len;i<(decorTop-1);++i)			{				g.drawLine(0,i,width,i);							}			g.setColor(rulerColor2);			g.drawLine(0,decorTop-2,width,decorTop-2);			g.setColor(rulerColor1);			g.drawLine(0,decorTop-1,width,decorTop-1);						// draw bottom border.			int p = height-decorBottom+2;			for(i=0;i<decorBottom && i<len;++i)			{				g.setColor(colorMap[i]);				g.drawLine(0,p+i,width,p+i);			}			for(i=len;i<decorBottom;++i)			{				g.drawLine(0,p+i,width,p+i);			}						g.setColor(rulerColor2);			g.drawLine(0,height-decorBottom+2,width,height-decorBottom+2);			g.setColor(rulerColor1);			g.drawLine(0,height-decorBottom+1,width,height-decorBottom+1);		}		if(defaultLogo!=null)		{			switch (logoPossition)			{				case FireScreen.LEFT:					g.drawImage(defaultLogo,0,0,Graphics.TOP|Graphics.LEFT);										break;				case FireScreen.CENTER:					g.drawImage(defaultLogo,(width/2)-(defaultLogo.getWidth()/2),0,Graphics.TOP|Graphics.LEFT);										break;				default: // default is RIGHT.					g.drawImage(defaultLogo,width-defaultLogo.getWidth(),0,Graphics.TOP|Graphics.LEFT);					break;			}		}				// draw bgImage		if(bg!=null)		{			int w = width;			int h = height-decorTop-decorBottom;						int offx = bg.getWidth()/2,offy=bg.getHeight()/2;			int x=0,y=0;			if(bgImageHorizontalOrientation==FireScreen.CENTER) x = w/2 - offx;			else if(bgImageHorizontalOrientation==FireScreen.LEFT) x=0;			else if(bgImageHorizontalOrientation==FireScreen.RIGHT) x=w-offx-offx;						if(bgImageVerticalOrientation==FireScreen.CENTER) y = h/2-offy; 			else if(bgImageVerticalOrientation==FireScreen.TOP) y= 0;			else if(bgImageVerticalOrientation==FireScreen.BOTTOM) y=h-offy-offy;						g.drawImage(bg,x,y+decorTop,Graphics.TOP|Graphics.LEFT);		}					}	String getThemeFile()	{		return themeFile;	}	void setThemeFile(String themeFile)	{		this.themeFile = themeFile;	}	}

⌨️ 快捷键说明

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