32
Low-Level User Interface Versi 0.2 Pembangunan Aplikasi Mobile

Jeni slides j2 me-04 low level user interface-v 0.2

Embed Size (px)

Citation preview

Page 1: Jeni slides j2 me-04 low level user interface-v 0.2

Low-Level User Interface

Versi 0.2

Pembangunan Aplikasi Mobile

Page 2: Jeni slides j2 me-04 low level user interface-v 0.2

Tujuan

Memahami bagaimana menggunakan low-level event handling dalam MIDP

Menggambar dan menampilkan text, gambar, garis, persegi panjang, dan sudut

Menentukan warna, jenis huruf, dan ketebalan pada saat menggambar bentuk

Memahami dan menggunakan class Canvas dan Graphics

Menggambar dengan graphics

Page 3: Jeni slides j2 me-04 low level user interface-v 0.2

Canvas

Canvas adalah subclass dari Displayable

Ia merupakan class abstract yang harus di-extend atau dijadikan sebagai subclass sebelum sebuah aplikasi memfungsikan class tersebut

Canvas dapat digunakan bersamaan dengan Screen sebagai high-level Displayable

Canvas akan mendefinisikan method-method tanpa event-handling. Aplikasi harus meng-override class-class tersebut untuk meng-handle event.

Canvas akan mendefinisikan sebuah method abstract yang dinamakan paint(). Sebuah aplikasi yang akan menggunakan Canvas harus mengimplementasikan method paint().

Page 4: Jeni slides j2 me-04 low level user interface-v 0.2

Sistem Koordinat

(0,0)increasing x value

incre

asin

g y

valu

e

(getwidth()-1,getHeight()-1)

Page 5: Jeni slides j2 me-04 low level user interface-v 0.2

Hello, world! pada Canvas

Page 6: Jeni slides j2 me-04 low level user interface-v 0.2

Hello, world! Canvas

protected void paint(Graphics g) {

// membersihkan layar dengan // memberikan warna putih pada layar

g.setColor(255, 255, 255 ); g.fillRect(0, 0, getWidth(), getHeight());

// set warna yang digunakan untuk menggambar g.setColor(0, 0, 0);

// gambarlah text-nya g.drawString(text, getWidth()/2, getHeight()/2, Graphics.TOP | Graphics.HCENTER); }

Page 7: Jeni slides j2 me-04 low level user interface-v 0.2

Menambahkan Command

Tambahkan object Command

Gunakan method addCommand() untuk menambahkan Command kepada Canvas (atau Form,List, TextBox)

Gunakan setCommandListener() untuk mendaftarkan class yang akan mendapatkan command event

Tambahkan commandListener dengan cara meng-implementasikan CommandListener dan menyediakan method commandAction()

Page 8: Jeni slides j2 me-04 low level user interface-v 0.2

Menambahkan Command

Menciptakan object Commandprivate Command exitCommand = new Command("Exit", Command.EXIT, 0);

Menggunakan addCommand() untuk menambahkan sebuah command ke Canvas (atau Form, List, Text Box)

addCommand(exitCommand);

Menggunakan setCommandListener untuk mendaftarkan class mana yang akan mendapatkan command event

setCommandListener(this);

Page 9: Jeni slides j2 me-04 low level user interface-v 0.2

Menambahkan Command

Menciptakan sebuah commandListener dengan cara meng-implements class CommandListener dan menyediakan method commandAction()

class HelloCanvas extends Canvas implements CommandListener {... public void commandAction(Command c, Displayable d){ if (c == exitCommand){ // do something } }

Page 10: Jeni slides j2 me-04 low level user interface-v 0.2

Graphics

Graphics adalah sebuah class utama untuk menggambar text, image, lines, persegi panjang dan sudut

Ia memiliki method-method yang digunakan untuk menentukan pewarnaan, jenis huruf, dan ketebalan garis.

Page 11: Jeni slides j2 me-04 low level user interface-v 0.2

Color

public boolean isColor() returns true if the display supports color, returns falseotherwise

public int numColors() returns the number of colors (or gray levels if device is doesnot support color) supported by the device

Page 12: Jeni slides j2 me-04 low level user interface-v 0.2

Color

Untuk menentukan warna yang akan digunakan pada method Graphics digunakanlah method setColor()

public void setColor(int red, int green, int blue)

public void setColor(int RGB)

Pada bentuk pertama, Anda akan mendefinisikan komponen-komponen warna yaitu merah, hijau, dan biru

Sedangkan pada bentuk kedua, komponen warna akan didefinisikan menggunakan bentuk : 0x00RRGGBB.

Page 13: Jeni slides j2 me-04 low level user interface-v 0.2

Color methods

public int getColor() retuns the current color in an int of the form aninteger in form 0x00RRGGBB

public int getRedComponent() returns the red component of the current color public int getGreenComponent() returns the green component of the current color public int getBlueComponent() returns the blue component of the current color public int getGrayScale() returns the grayscale value of the current color public void setGrayScale(int value) sets the grayscale value for suceeding drawing

operations

Page 14: Jeni slides j2 me-04 low level user interface-v 0.2

Fonts

Font memiliki tiga attribute yaitu face, style, dan size

Fonts tidak diciptakan sendiri oleh aplikasi, tetapi aplikasi akan mendapatkan attribute font tertentu dari sistem dan sistem-lah yang akan menyediakan font yang sesuai dengan attribute tersebut.

Tidak ada garansi dari sistem, bahwa semua attribute Font yang diinginkan oleh aplikasi dapat tersedia.

Jika sistem tidak mendapatkan font yang sesuai dengan permintaan dari aplikasi, maka ia akan mengembalikan font yang hampir sama dengan attribute-attribute yang di-request.

Page 15: Jeni slides j2 me-04 low level user interface-v 0.2

Fonts

public static Font getFont(int face, int style, intsize)

returns a font from the system that matches the attributes

public static Font getDefaultFont() returns the default font used by the systempublic static Font getFont(int fontSpecifier)

returns the font used for high level UI components.fontSpecifier may be:

FONT_INPUT_TEXT

or

FONT_STATIC_TEXT

Page 16: Jeni slides j2 me-04 low level user interface-v 0.2

Fonts

Face dapat merupakan salah satu dari berikut ini: FACE_SYSTEM, FACE_MONOSPACE, atau FACE_PROPORTIONAL.

Style dapat berupa STYLE_PLAIN atau merupakan kombinasi dari STYLE_BOLD, STYLE_ITALIC, dan STYLE_UNDERLINED.

Kombinasi dari style dapat didefinisikan dengan menggunakn bitwise OR atau operator OR (|). Misalnya: bold dan italic dapat dideklarasikan berikut ini:

STYLE_BOLD | STYLE_ITALIC

Ukuran dari Font, bisa merupakan salah satu dari berikut ini: SIZE_SMALL, SIZE_MEDIUM, atau SIZE_LARGE

Page 17: Jeni slides j2 me-04 low level user interface-v 0.2

Stroke Style

method setStrokeStyle(int style) akan menentukan stroke style yang akan digunakan untuk menggambar garis, sudut, persegi panjang, dan persegi panjang tumpul.

Stroke style tidak akan mengubah text, image, dan fill drawing operations.

Nilai yang benar bagi Stroke style adalah SOLID and DOTTED.

public void setStrokeStyle(int style) sets the stroke style that will be used fordrawing lines, arcs, rectangles and roundedrectangles

public int getStrokeStyle() returns the current stroke style

Page 18: Jeni slides j2 me-04 low level user interface-v 0.2

Anchor Points

Text akan digambar relatif terhadap anchor point. Method drawString() akan melihat titik (x,y) relatif terhadap anchor point.

public void drawString(String str, int x, int y, int anchor)

Anchor merupakan kombinasi dari konstanta horisontal (LEFT, HCENTER, atau RIGHT) dan sebuah konstanta vertikal (TOP, BASELINE atau BOTTOM).

Konstanta horisontal and vertikal harus dikombinasikan dengan bitwise OR (|). Hal ini berarti, penggambaran text akan bersifat relatif terhadap baseline dan titik tengah horisontal akan membutuhkan anchor value BASELINE | HCENTER.

Page 19: Jeni slides j2 me-04 low level user interface-v 0.2

Anchor Points

TOP | LEFT

BOTTOM | HCENTER

BOTTOM | LEFT BOTTOM | RIGHT

TOP | RIGHT

TOP | HCENTER

BASELINE | LEFT BASELINE | RIGHT

BASELINE | HCENTER

Page 20: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Text

public void drawString(String str, int x, int y, int anchor)

draws the text in str using the current color and font. (x,y)is the coordinate of the anchor point.

public void drawSubstring(String str, int offset, int len, int x, int y, int anchor)

same as drawString, except that it will only draw asubstring from offset (zero-based) with length of len.

public void drawChar(char character, int x, int y, int anchor)

draws the character using the current color and font.

public void drawChars(char[] data, int offset, int length, int x, int y, int anchor)

draws the characters in the char array data, starting fromthe index of offset with length of length.

Page 21: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Text

Page 22: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Garis

public void drawLine(int x1, int y1, int x2, int y2)

Method ini akan menggambar sebuah garis dengan menggunakan warna dan jenis garis yang telah didefinisikan pada koordinat (x1,y1) dan (x2,y2).

Page 23: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Garis

Page 24: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Segi Empat

public void drawRect(int x, int y, int width, int height)

public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

Page 25: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Segi Empat

public void fillRect(int x, int y int width, int height)

public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)

Page 26: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Segi Empat

Page 27: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Sudut

public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)

draws an arc with center on (x,y) anddimensions (width+1 x height+1). The arcdrawn begins at startAngle and extends forarcAngle degrees. 0 degree is at 3 o'clock.

public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)

fills a circular or elliptical arc covering therectangular area with the current color.

Page 28: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Sudut

Page 29: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Images

public void drawImage(Image img, int x, int y, int anchor)

Anchor haruslah sebuah kombinasi antara konstanta horisontal (LEFT, HCENTER, atau RIGHT) dan konstanta vertikal (TOP, VCENTER, atau BOTTOM).

Konstanta horisontal dan vertikal akan dikombinasikan dengan bitwise OR (|)

Menggambar text bergantung pada titik tengah vertikal dan horisontal, sehingga dibutuhkan anchor value VCENTER | HCENTER.

Page 30: Jeni slides j2 me-04 low level user interface-v 0.2

Image Anchor Points

TOP | LEFT

BOTTOM | HCENTER

BOTTOM | LEFT BOTTOM | RIGHT

TOP | RIGHT

TOP | HCENTER

VCENTER | LEFT VCENTER | RIGHT

VCENTER | HCENTER

Page 31: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Images

try { Image image = Image.createImage("/jedi.png");

g.drawImage(image, getWidth()/2, getHeight()/2, Graphics.VCENTER | Graphics.HCENTER);} catch (Exception e){}

Page 32: Jeni slides j2 me-04 low level user interface-v 0.2

Menggambar Images