`
freesoftman
  • 浏览: 319838 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

J2ME字体专题

阅读更多

1,Font类的特点:

没有构造函数

final类型的类

没有color属性,只有三性:.

2,特点决定用法:不能被继承,不能被实例化.

 

3,关于字体的知识:字体的形状-----face,字体的风格----Style,字体的大小---size

4,J2ME提供的字体:

形状: FACE_MONOSPACE---等宽字体

     FACE_PROPORTIONAL----均衡字体

    FACE_SYSTEM----系统字体

风格: STYLE_BOLD-----粗体

       STYLE_ITALIC---斜体

     STYLE_PLAIN----普通

       STYLE_UNDERLINED----下画线

注意:风格可以组合.: STYLE_BOLD| STYLE_ITALIC 两两组合,或者三者组合STYLE_UNDERLINED |STYLE_BOLD| STYLE_ITALIC

大小: SIZE_LARGE--- 16

     SIZE_MEDIUM----0

       SIZE_SMALL-----8

 

5,color: 由于J2ME技术比较简单,所以没有实现专门的颜色类,而只是使用RGB的概念来代表颜色。这里简单介绍一下RGB的概念,颜色是由红(Red)、绿(Green)、蓝(Blue)三原色组成的,所以可以使用这三个颜色的组合来代表一种具体的颜色,其中RGB的每个数值都位于0-255之间。在表达颜色的时候,即可以使用三个数字来表达,也可以使用一个格式如0X00RRGGBB这样格式的十六进制来表达,下面是常见颜色的表达形式:

红色:(255,0,0)0x00FF0000  
绿色:(0,255,0)
0x0000FF00  
 蓝色:(255,255,255)0x00FFFFFF

可以使用setColor(int red,int green,int blue)或者setColor(int RGB)来设置字体的颜色,getColor()来获取字体的颜色

 

6.用法:

Graphics类中的运用:

package datuu.srk.demo.font;

 

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

import javax.microedition.lcdui.Canvas;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Font;

import javax.microedition.lcdui.Display;

 

public class GraphicsTest extends MIDlet {

    private GraphicsTestCanvas showCanvas;

    public GraphicsTest() {

        showCanvas = new GraphicsTestCanvas();

    }

    protected void startApp() throws MIDletStateChangeException {

        Display.getDisplay(this).setCurrent(showCanvas);

  }

 

    protected void pauseApp() {

    }

 

    protected void destroyApp(boolean _boolean) throws

            MIDletStateChangeException {

    }

 

 

    class GraphicsTestCanvas extends Canvas {

        private Font myFont;

        public GraphicsTestCanvas() {

            myFont = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_UNDERLINED|Font.STYLE_BOLD|Font.STYLE_ITALIC,Font.SIZE_LARGE);//设置字体

        }

        private final String showMessage = "kuikui,你好!";

        protected void paint(Graphics g) {

            g.setFont(myFont);

            g.drawString(showMessage,this.getWidth()/2,this.getHeight()/2,Graphics.TOP|Graphics.LEFT);

        }

    }

}

 

绘制会动的字体:

package datuu.srk.demo.font;

 

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

 

public class DrawCanvas extends MIDlet implements CommandListener {

    private Command exitCommand;

    private HCanvas sg;

    public DrawCanvas() {

        exitCommand = new Command("Exit", Command.EXIT, 1);

        sg = new HCanvas();

        sg.addCommand(exitCommand);

        sg.setCommandListener(this);

        Display.getDisplay(this).setCurrent(sg);

 

    }

 

    protected void startApp() {

    }

 

    protected void pauseApp() {

    }

 

    protected void destroyApp(boolean unconditional) {

    }

 

    public void commandAction(Command c, Displayable d) {

        if (c == exitCommand) {

            destroyApp(false);

            notifyDestroyed();

        }

    }

}

 

 

class HCanvas extends Canvas implements Runnable {

 

    private String str = new String("Hello,LinuxFans");

    private int[] adjustHight = new int[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

                                0, 0, 0, 0, 0, 1, 2, 3, 4, 4, 3, 2, 1, 1, 2, 3,

                                3, 4, 4, 3, 2, 1,};

    boolean bStart = true;

    private int k = str.length();

 

    public HCanvas() {

        new Thread(this).start();

    }

 

    protected void paint(Graphics g) {

        g.setColor(0x00ffffff);

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

        g.setColor(0x00000000);

        for (int i = 0; i < str.length(); i++) {

            g.drawString(str.substring(i, i + 1), 20 + i * 7,

                         10 - adjustHight[k - i], 0);

            g.drawString(str.substring(i, i + 1), 21 + i * 7,

                         11 - adjustHight[k - i], 0); //加重字体7是字体宽度

        }

    }

 

    public void run() {

        while (bStart) {

            try {

                repaint();

                Thread.sleep(70);

                k++;

                if (k > (adjustHight.length - 1)) {

                    k = str.length();

                }

            } catch (InterruptedException e) {}

        }

    }

 

}

 

List中的运用很简单,List.setFont(int index,Font font)方法,可以把预设定好的字体.

 

小结一下:字体在J2ME中是很重要的一部分,因为我们做出来的软件美观也是很重的义部分,字体有很多种,要设置跟更美观的字体可以使用德国开源包polish,j使用也很简单,就像css样式列表一样使用,通过它可以设置跟网页一样美观的字体,当我们要绘制动态字体的时候,其实就是坐标的变换,左右滚动变换x坐标,上下滚动,变换y坐标.

(转自:KuiKui)

分享到:
评论

相关推荐

    J2ME开发 J2ME开发 J2ME开发

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备的开发,如手机、智能电表、家庭自动化设备等。它提供了跨平台的开发环境,使得开发者可以编写一次代码,到处运行。J2ME由两大...

    j2me_plane.rar_j2me_j2me 飞机_j2me 飞机 游戏_飞机游戏

    《J2ME飞机游戏开发详解》 J2ME(Java 2 Micro Edition)是Java平台的一个子集,专为移动设备、嵌入式系统等资源有限的环境设计。本篇文章将深入探讨如何利用J2ME技术开发一款简单的飞机游戏,以此帮助初学者理解...

    J2ME API 2.0 J2ME使用手册 J2ME帮助文档

    **J2ME API 2.0 - J2ME使用手册 - J2ME帮助文档** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专为资源有限的设备如移动电话、智能手表和家用电器等设计。J2ME API 2.0 提供了在这些小型设备上开发应用...

    J2ME_Map.rar_J2ME 地图_J2ME游戏_j2me 游戏_j2me_m_绘制地图

    在J2ME(Java 2 Micro Edition)平台上开发游戏时,地图的设计与绘制是至关重要的一个环节。J2ME作为一种轻量级的Java平台,广泛应用于移动设备,如早期的智能手机和平板电脑,用于实现各种应用程序,特别是游戏。本...

    J2ME中文版教程 J2ME教程

    **J2ME中文版教程——全面解读移动设备编程** J2ME(Java 2 Micro Edition)是Java平台的一个重要组成部分,专为嵌入式设备、移动电话和其他资源有限的设备设计。这个J2ME中文版教程是针对初学者和有一定经验的...

    J2me中低级界面字体处理.doc

    在J2ME(Java 2 Micro Edition)编程中,低级界面的字体处理是一个关键的环节,这直接影响到应用程序的视觉效果和用户体验。在J2ME中,我们不能像在高级用户界面那样自由选择各种字体,因为手机设备的资源限制,只能...

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏下,上为另一部分

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏

    j2me开发框架介绍

    j2me 开发框架介绍 j2me 是一种用于开发无线应用程序的平台,它提供了一个灵活、强大和开放的开发环境。随着 j2me 的普及,出现了许多开源框架,旨在简化开发过程,提高开发效率。下面将介绍这些框架,並分析它们的...

    J2ME小游戏J2ME小游戏J2ME小游戏上,下为另一部分

    J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏

    J2ME教材:J2ME&Gaming中文版

    **J2ME教材:J2ME&Gaming中文版** J2ME,全称为Java 2 Micro Edition,是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、智能手表等。这个“J2ME&Gaming中文版”教材主要针对的是Java在游戏开发领域的...

    j2me手机浏览器/j2me手机浏览器

    Java 2 Micro Edition (J2ME) 是一种Java平台,专为嵌入式设备和移动设备,特别是手机设计。在2000年代初期,J2ME是许多非智能手机上实现互联网浏览的主要技术,其中“j2me手机浏览器”就是这样一个应用。这个应用...

    j2me游戏.rar

    Java 2 Micro Edition(J2ME)是一种针对嵌入式设备和移动设备的Java平台,主要用于开发手机游戏、应用程序和服务。"j2me游戏.rar"很可能是包含了一系列使用J2ME技术开发的游戏资源包。在本文中,我们将深入探讨J2ME...

    j2me点阵字库

    点阵字库是J2ME应用中一种特殊的字体资源,尤其对于游戏开发来说,非常重要。这种字库以像素为单位描绘字符形状,适用于低内存和低分辨率的设备。 点阵字库的工作原理是将每个字符以二维数组的形式存储,数组的每个...

    Tank_J2ME.rar_j2me

    【标题】"Tank_J2ME.rar_j2me" 指的是一个关于J2ME(Java 2 Micro Edition)平台的项目,其中包含了实现“塔克大战”游戏的源代码和资源文件。J2ME是Java的一个子集,主要用于开发在移动设备、嵌入式系统等小型设备...

    j2me经典游戏源码

    Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于开发和部署移动设备、嵌入式设备上的应用程序。这款"j2me经典游戏源码"提供了一个绝佳的学习平台,帮助开发者深入理解J2ME游戏编程的核心概念和技术。 ...

    j2me课件.rar

    Java 2 Micro Edition(J2ME)是Java平台的一个重要组成部分,主要针对嵌入式设备和移动设备,如手机、智能电表、机顶盒等。这个“j2me课件.rar”压缩包包含了浙江工业大学软件工程专业2009年的J2ME课程相关材料,...

    j2ME手机移动开发

    **j2ME手机移动开发** Java 2 Micro Edition(j2ME)是Java平台的一个重要分支,主要用于开发在小型设备上运行的应用程序,如手机、智能手表和家用电器等。j2ME为移动设备提供了丰富的功能,使得开发者可以构建功能...

    J2ME开发源码大全

    J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专门用于嵌入式设备和移动设备的开发,如手机、智能家电等。它提供了轻量级的运行环境和API,使得开发者能够在资源有限的设备上构建功能丰富的应用程序。 ...

Global site tag (gtag.js) - Google Analytics