游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2414|回复: 2

J2ME 中的一个方法不知含义,还望高手指教

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2009-9-8 20:18:00 | 显示全部楼层 |阅读模式
我是一个 JAVA 的初学者,现在正着手制作 手机游戏
手上有个别人的项目,但是看不懂其中的某些方法,所以希望有高手能指点,不胜感激。

protected int[] transpBuf;  // 背景和边框颜色的缓冲
protected int maxWidth; // 一个软键的最大宽度 类型为 Int
protected Font font;    // 绘制软键字的字体
protected static final int COL_BORDER = 0x88440000;  // 边框颜色
protected static final int COL_BG = 0xbb440000;      // 背景颜色
  
public void recalcTransparantBuffer()
{
    transpBuf = new int[(maxWidth + 2) * (font.getHeight() + 1)];
    for(int i=maxWidth + 2; i<transpBuf.length; i++)
    {
        transpBuf = COL_BG;
    }
    for(int i=0; i<maxWidth + 2; i++)
    {
        transpBuf = COL_BORDER;
    }
    for(int i=0; i<font.getHeight() + 1; i++)
    {
        transpBuf[(i * (maxWidth + 2))] = COL_BORDER;
        transpBuf[(i * (maxWidth + 2)) + maxWidth + 1] = COL_BORDER;
    }
}

希望能详细说明这个方法的意思,谢谢!


对了,0x88440000   0xbb440000 这种类型的颜色代码到底怎么查啊?
我找了很多颜色代码查询网站都没有与之完全相匹配的,为什么它后面的数字会这么多?


0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-10-12 11:42:00 | 显示全部楼层

Re:J2ME 中的一个方法不知含义,还望高手指教


    transpBuf = new int[(maxWidth + 2) * (font.getHeight() + 1)];
    //初始化软键 宽为maxWidth+2  高为 字体高+1 (他这里是用数组来做的)  
    for(int i=maxWidth + 2; i<transpBuf.length; i++)
    {
    //如果你动手画一下这个结构 maxWidth+2 应该是第二排的第一个
    //从第二排第一个一直画到最后一个  就是一个矩形 他在画软键的大背景
        transpBuf = COL_BG;
    }
    for(int i=0; i<maxWidth + 2; i++)
    {
    //从第一排第一个画到第一排最后一个  就是上边框
        transpBuf = COL_BORDER;
    }
    for(int i=0; i<font.getHeight() + 1; i++)
    {
    //仔细看 他这里i用的是  字体高度作为 i 后面用的是 *  那么他很可能是画竖线
        transpBuf[(i * (maxWidth + 2))] = COL_BORDER;
        transpBuf[(i * (maxWidth + 2)) + maxWidth + 1] = COL_BORDER;
    //这两句正式了  他的确是在画竖线  这个软键的左右边框 上句的是左边框 下句的是右边框
    }

至于颜色查询   http://www.zhaozi.cn/color.htm

0

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2009-11-10 23:11:00 | 显示全部楼层

Re:J2ME 中的一个方法不知含义,还望高手指教

楼上解释的很清楚。
他是相当于通过1个1维数组存储1个矩形面积的颜色数据,然后用低级界面绘制1个矩形图像(这部分代码没写)。
这个矩形图像是用来展示手机软键 , COL_BG = 0xbb440000;      // 背景颜色  COL_BORDER = 0x88440000;  // 边框颜色
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-18 05:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表