大家都知道。設計一個好的軟件,無非是要求程序穩定,可擴展,可修改跟可移值。在沒有出現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
以上是本人經過互聯網學習,上面的一些代碼出自一些開源的。
大家可以按照需要修改。共同學習。