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

j2me中drawRGB()方法的用法

阅读更多
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class AlphaBlending extends MIDlet implements CommandListener {
    
    private Display display;
    private Form. form;
    private Command exitCommand;
    private Command startCommand;
    private Command backCommand;
    private AlphaCanvas alphaCanvas;
    
    private static final String IMAGE_NAME = "/image.png";
    
    
    public AlphaBlending() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.EXIT, 2);
        startCommand = new Command("Start", Command.SCREEN, 1);
        backCommand = new Command("Back", Command.BACK, 1);
        alphaCanvas = new AlphaCanvas(IMAGE_NAME);
        form. = new Form("Alpha Blending Demo");
        form.append(new StringItem(null, "Press 'Start' to run demo."));
        form.addCommand(exitCommand);
        form.addCommand(startCommand);
        form.setCommandListener(this);
    }
    
    
    public void startApp() {
        display.setCurrent(form);
    }
    
    
    public void pauseApp() {}
    
    
    public void destroyApp(boolean unconditional) {}
    
    
    public void commandAction(Command c, Displayable d) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }else if (c == startCommand) {
            display.setCurrent(alphaCanvas);
            alphaCanvas.addCommand(backCommand);
            alphaCanvas.setCommandListener(this);
            
            Thread t = new Thread(alphaCanvas);
            t.start();
        }else if (c == backCommand) {
            
            display.setCurrent(form);
        }
    }
    
    
}


 

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;

public class AlphaCanvas extends Canvas implements Runnable {
    
    private Image backgroundImage;
    private int[] maskArray;
    private int imageWidth;
    private int imageHeight;
    private int x;
    private int y;
    private int maskHeight = 0;
    
    public AlphaCanvas(String imageName) {
        //create the background image
        try {
            backgroundImage = Image.createImage(imageName);
        }catch(IOException ioe) {
            ioe.printStackTrace() ;
        }
        imageWidth = backgroundImage.getWidth();
        imageHeight = backgroundImage.getHeight();
        
        //create a semi-transparent red mask to cover the background image
        maskArray = new int[imageWidth*imageHeight];
        for (int i = 0; i < imageWidth*imageHeight; i++) {
            maskArray[i] = 0x11FFF000;//alpha coefficient set to 0.3
        }
        
        x = (getWidth() - imageWidth)/2;
        y = (getHeight() - imageHeight)/2;
    }
    
    public void paint(Graphics g) {
        g.setColor(255, 255, 255);
        g.fillRect(0, 0, getWidth(), getHeight());//paint Canvas background white
        g.drawImage(backgroundImage, x, y, Graphics.TOP|Graphics.LEFT);
        
        //render the semi-transparent mask
        if (maskHeight != 0){
            g.drawRGB(maskArray, 0, imageWidth, x, y, imageWidth, maskHeight, true);
        }
    }
    
    public void run() {
        for(int i = 1; i <= imageHeight; i++) {
            maskHeight = i;
            repaint();
            try {
                Thread.sleep(50);
            }catch(InterruptedException ie) {}
        }
    }
    
}

 

1
1
分享到:
评论

相关推荐

    J2ME中文输入Demo

    在J2ME中,使用Unicode编码处理中文字符至关重要,因为它能确保正确地存储和传输中文字符。 3. **输入法引擎** 中文输入法通常涉及到拼音输入、笔画输入或五笔字型等。在J2ME平台上,由于资源限制,拼音输入是最...

    J2ME中程序优化的十个小方法

    1. **合理使用数据结构**:J2ME中的数据结构如ArrayList和Vector在内存管理上不如Java SE高效。考虑使用数组代替ArrayList,避免动态扩容带来的性能开销。对于小规模的数据存储,可以考虑使用哈希表或者简单的数组...

    J2ME 中文api以及应用 J2ME 中文api以及应用.rar

    这类文档通常会详细介绍每个类、方法和接口的用途,提供示例代码,并解释如何在实际项目中使用这些API。 **www.pudn.com.txt**可能是一个指向资源网站的链接或者说明文件,pudn.com是一个知名的中国技术资源分享...

    J2ME中文教程,J2ME手机程序开发

    本教程将深入讲解J2ME在手机程序开发中的应用,帮助开发者掌握这一核心技术。 ### J2ME技术概述 J2ME由两大部分构成:配置(Configurations)和框架(Profiles)。配置定义了运行时环境的基本特性,如内存大小和...

    J2ME的TextBox用法

    在探讨J2ME中的`TextBox`用法时,我们不仅限于其基本功能,还将深入理解如何结合`Command`命令来实现用户交互,以及如何优雅地处理应用的生命周期事件。以下将详细介绍`TextBox`和`Command`在Java Micro Edition...

    J2ME中文教程.pdf

    J2ME中文教程 不错的学习资料,刚开始学习的可以参考下!

    j2me 中文api (html)

    1. **熟悉基础类库**:从中文API文档中,开发者可以了解到J2ME提供的基础类库,如java.lang、java.io等,掌握这些类库的使用是进行任何开发的基础。 2. **学习MIDP框架**:MIDP是构建J2ME应用的关键,通过阅读中文...

    J2me中任意角度图片旋转

    5. **直接得到Image对象**:在J2ME中,可以使用`Image.createRGBImage`(midp2.0)或特定方法(NokiaUI)创建新的Image对象。 6. **处理小数运算**:在CLDC1.0设备上,可能不支持浮点数运算,需要将旋转角度转换为...

    J2ME中文教程

    在J2ME中,RecordStore是用于存储非结构化数据的主要机制。开发者可以创建、读取、更新和删除RecordStore中的记录。此外,FileConnection API允许开发者访问设备的文件系统,进行文件的读写操作。 **游戏开发** ...

    图片分类 J2ME中的图片处理

    【标题】:“图片分类 J2ME中的图片处理” 【描述】:“图片的特点及分类;png图片的格式分析;图片在J2me中的应用。” 【标签】:“图片处理” “J2ME” “png” 在Java的移动开发领域,J2ME(Java 2 Micro ...

    J2ME中的时间处理方法

    1. **使用`Thread.sleep()`进行延时**:在J2ME中,如果你想让程序暂停一段时间再继续执行,可以使用`Thread.sleep(millis)`方法。这里的`millis`参数表示要睡眠的毫秒数。但需要注意,`Thread.sleep()`可能会抛出`...

    J2ME中文版教程 J2ME教程

    4. **MIDP API详解**:MIDP是J2ME中用于创建移动应用的核心API,教程会详细介绍如何使用Canvas、Form、Item等组件进行用户界面设计,以及怎样利用 MIDP的网络功能实现数据通信。 5. **图形与多媒体**:J2ME支持丰富...

    j2me混淆器安装与使用方法

    **J2ME混淆器安装与使用详解** J2ME混淆器是针对Java Micro Edition (J2ME) ...以上就是关于J2ME混淆器的安装与使用方法的详细介绍,通过这个过程,你可以有效地保护你的J2ME应用程序,同时也能优化其大小和运行效率。

    J2ME 中文教程1.01

    5. **MIDlet**:J2ME中的应用程序单元,类似于Java SE中的JApplet。一个MIDlet由一个主类(实现了MIDlet接口)和可选的其他类组成。 6. **用户界面(UI)编程**:J2ME的UI通常基于 Lightweight User Interface ...

    J2ME中文教程(包含代码)

    通过这个J2ME中文教程,开发者不仅可以学习到J2ME的基本概念和使用方法,还能通过实际的代码示例深化理解和提升技能。无论你是初学者还是有一定经验的开发者,都可以从这个教程中受益匪浅,为你的移动应用开发之路...

    J2ME 中文教程 MIDP2.0

    MIDP(Mobile Information Device Profile)2.0是J2ME中的一个重要配置,它提供了在这些小型设备上开发应用程序的基本框架和API。本教程将深入探讨如何使用J2ME和MIDP2.0进行移动应用开发。 **1. J2ME架构** J2ME...

    J2ME中文开发教程(附带Myeclipse用J2ME插件)

    Myeclipse中的J2ME插件,使得开发者可以直接在IDE中创建、编辑、构建和运行J2ME项目,大大提高了开发效率。 在使用Myeclipse进行J2ME开发时,你可以创建新的J2ME工程,配置所需的CLDC和MIDP版本,然后添加源代码...

    J2ME中文教程1.rar

    J2ME的中文教程,值得看一下!

    J2ME中文学习课件

    在J2ME中,你需要学习如何使用MIDlet套件管理器来控制MIDlet的生命周期,包括startApp()、pauseApp()、resumeApp()和destroyApp()方法。同时,掌握基本的UI组件如ChoiceGroup、TextBox和Form的使用也至关重要。此外...

Global site tag (gtag.js) - Google Analytics