程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 設計可組裝的j2me UI(二) 一些系統邊緣核心的

設計可組裝的j2me UI(二) 一些系統邊緣核心的

編輯:J2ME
大家都知道。設計一個好的軟件,無非是要求程序穩定,可擴展,可修改跟可移值。在沒有出現j2me之前,寫手機程序是一件很痛苦的事情。因為你要針對很多的機型進行設計,因此導致了很少人會去涉及。因為設計這樣的程序對程序員來說是個挑戰。現在不同了。有了J2ME使開放手機軟件變的容易,而且很快樂。
     定義一個與平台無關的各個參數的類,比如把按鍵的鍵值放在這裡。這樣以後修改起來就很方便。
/**
 * Provides platform dependent settings for Sun WTK platform
 * 提供初始化獲取手機屏幕的高,寬等。
 * 注意Nokia平台還是需要調用sizeChange方法重新獲取。
 * @author Greg Gridin
 */
public class Platform extends Canvas {

	static public final byte PLATFORM_BARTEO = 1;

	static public final byte PLATFORM_LG = 2;

	static public final byte PLATFORM_MOTOROLA = 3;

	static public final byte PLATFORM_MOTOROLA_V = 4;

	static public final byte PLATFORM_NOKIA = 5;

	static public final byte PLATFORM_NOKIA_30 = 6;

	static public final byte PLATFORM_SIEMENS = 7;

	static public final byte PLATFORM_SAMSUNG = 8;

	static public final byte PLATFORM_SONYERICSSON = 9;

	static public final byte PLATFORM_SUN_WTK = 10;

	static public final byte PLATFORM = PLATFORM_SUN_WTK;

	/**
	 * The width in pixels of a screen
	 */
	public static int WIDTH;

	/**
	 * The height in pixels of a screen
	 */
	public static int HEIGHT;

	/**
	 * Indicated whether the phone has hardware support for double buffering for
	 * screen painting
	 */
	public static final boolean DOUBLE_BUFFER = true;

	/**
	 * "No-key" key code
	 */
	public static final int KEY_UNDEFINED = 0;

	public static final int KEY_FULL_MODE = 48;

	/**
	 * Key code for the UP game action.
	 */
	public static final int KEY_UP = -1;

	/**
	 * Key code for the LEFT game action.
	 */
	public static final int KEY_LEFT = -3;

	/**
	 * Key code for the RIGHT game action.
	 */
	public static final int KEY_RIGHT = -4;

	/**
	 * Key code for the DOWN game action.
	 */
	public static final int KEY_DOWN = -2;

	/**
	 * Key code for the FIRE game action.
	 */
	public static final int KEY_FIRE = -5;

	/**
	 * Key code for left soft key
	 */
	public static final int KEY_SOFT_LEFT = -6;

	/**
	 * Key code for right soft key
	 */
	public static final int KEY_SOFT_RIGHT = -7;

	/**
	 * Key code for PHONE_ON key (green button)
	 */
	public static final int KEY_PHONE_ON = -10;

	/**
	 * Key code for PHONE_OFF key (red button)
	 */
	public static final int KEY_PHONE_OFF = -11;

	/**
	 * Key code for CLEAR key
	 */
	public static final int KEY_CLEAR = -8;

	/**
	 * Key code for VOLUME UP key
	 */
	public static final int KEY_VOLUME_UP = KEY_UNDEFINED;

	/**
	 * Key code for VOLUME DOWN key
	 */
	public static final int KEY_VOLUME_DOWN = KEY_UNDEFINED;

	/**
	 * Key code for "fictitious" ENTER key Some phones does not have FIRE
	 * button, we have to find out the replacement
	 */
	public static final int KEY_ENTER = KEY_FIRE;

	public static final int KEY_PAGEUP = 42;

	public static final int KEY_PAGEDOWN = 35;

	public static final int REFRESH = 53;

	protected void paint(Graphics g) {

	}

	static {
		Canvas dummy = new Canvas() {
			
			public void paint(Graphics g) {
				
			}
			/** 當整個屏幕大小改變時候,通知其他屏幕,屏幕大小改變了 **/
			protected    void sizeChanged(int w, int h) {
				if(h>HEIGHT){
					WIDTH = w;
					HEIGHT = h;
				}
				
			}
		};
		dummy. setFullScreenMode(true);
		
		//不知道為什麼這裡總是不能修正高度
		if(dummy.getHeight() > HEIGHT){
			WIDTH = dummy.getWidth();
			HEIGHT = dummy.getHeight();
		}
		
		dummy = null;
		
		//System.out.println("配置正確!");
	}


	public final static long getTotalMemory(){
		long memory = Runtime.getRuntime().totalMemory();
		return memory;
		
	}

	public final static long getfreeMemory(){
		long memory = Runtime.getRuntime().freeMemory();
		return memory;
		
	}
	
	 
	 
} // class  
/**
 * The colors available to midlets.
 * 定義一些常用顏色配置
 *  
 */
public class Color {

    /**
     * "Transparent" color. This color is valid for Motorola handsets, but may not apply for all phones.
     */
    public static final int TRANSPARENT   = 0xFFFFFFFF;

    /**
     * The color white.
     */
    public static final int WHITE = 0xFEFEFE;

    /**
     * The color dark gray.
     */
    public static final int DK_GRAY = 0x555555;

    /**
     * The color black.
     */
    public static final int BLACK = 0x000000;

   

} // class Color


/**
 * Sets the style for the application.
 * This style is blue/white/black for color screens
 *
 * @author Greg Gridin
 */
public class Style {

    /**
     * Plain style small size font
     */
    public static final Font PLAIN_SMALL =
            Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL);

    /**
     * Plain style medium size font
     */
    public static final Font PLAIN_MEDIUM =
            Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);

    /**
     * Plain style large size font
     */
    public static final Font PLAIN_LARGE =
            Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_LARGE);

    /**
     * Bold style small size font
     */
    public static final Font BOLD_SMALL =
            Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_SMALL);

    /**
     * Bold style medium size font
     */
    public static final Font BOLD_MEDIUM =
            Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM);

    /**
     * Bold style large size font
     */
    public static final Font BOLD_LARGE =
            Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);

    /**
     * Default font to use for text
     */
    public final static Font TEXT_FONT = PLAIN_SMALL;

    /**
     * Default font to use for header text
     */
    public final static Font HEADER_FONT = BOLD_SMALL;

    /**
     * Default font to use for soft key text
     */
    public final static Font SOFTKEY_FONT = BOLD_SMALL;

    /**
     * Default font to use for text fields
     */
    public final static Font TEXT_FIELD_FONT = TEXT_FONT;

    /**
     * Default color for texts
     */
    public static final int TEXT_COLOR = Color.BLACK;

    /**
     * Color to use for component borders (example: textfield component)
     */
    public static final int BORDER_COLOR = Color.BLACK;

    /**
     * Default color for focused backgrounds
     */
    public static final int FOCUSED_BACKGROUND_COLOR = Color.DK_BLUE;

    /**
     * Default color for focused texts
     */
    public static final int FOCUSED_TEXT_COLOR = Color.WHITE;

    /**
     * Default color for cursor
     */
    public static final int CURSOR_TEXT_COLOR = Color.BLACK;

    /**
     * Default color for cursor background
     */
    public static final int CURSOR_BACKGROUND_COLOR = Color.WHITE;

    /**
     * Default color for scrollbar arrows
     */
    public static final int ARROW_COLOR = Color.BLACK;

    /**
     * Default color for screen title background
     */
    public static final int TITLE_BACKGROUND_COLOR = Color.LT_BLUE;

    /**
     * Default color for screen title text
     */
    public static final int TITLE_TEXT_COLOR = Color.BLACK;

    /**
     * Default color for SoftKeyBar background
     */
    public static final int SOFTKEYBAR_BACKGROUND_COLOR = Color.LT_BLUE;

    /**
     * Default color for SoftKeyBar text
     */
    public static final int SOFTKEYBAR_TEXT_COLOR = Color.BLACK;

    /**
     * Vertical gap, in pixels, between components
     */
    public static final int V_GAP = 1;

    /**
     * Horizontal gap, in pixels, between components
     */
    public static final int H_GAP = 1;

    /**
     * Custom fields horizontal gap, in pixels, between block and separator
     */
    public static final int CF_H_GAP = 1;

    /**
     * Default background color
     */
    public static final int BACKGROUND_COLOR = Color.TRANSPARENT;

    /**
     * Type of text fields
     */
    public static final boolean SCROLLABLE_TEXTFIELD = true;

    private Style() {
    }
} // class Style
以上是本人經過互聯網學習,上面的一些代碼出自一些開源的。
大家可以按照需要修改。共同學習。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved