BlackBerry 中的图像按钮

2024-03-05

如何在 BlackBerry 中实现图像按钮?


在这里,完整的代码:

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.component.ButtonField;

/**
 * Button field with a bitmap as its label.
 */
public class BitmapButtonField extends ButtonField {
        private Bitmap bitmap;
        private Bitmap bitmapHighlight;
        private boolean highlighted = false;

        /**
         * Instantiates a new bitmap button field.
         * 
         * @param bitmap the bitmap to use as a label
         */
        public BitmapButtonField(Bitmap bitmap, Bitmap bitmapHighlight) {
            this(bitmap, bitmapHighlight, ButtonField.CONSUME_CLICK|ButtonField.FIELD_HCENTER|ButtonField.FIELD_VCENTER);
        }

        public BitmapButtonField(Bitmap bitmap, Bitmap bitmapHighlight, long style) {
            super(style);
            this.bitmap = bitmap;
            this.bitmapHighlight = bitmapHighlight;
        }

        /* (non-Javadoc)
         * @see net.rim.device.api.ui.component.ButtonField#layout(int, int)
         */
        protected void layout(int width, int height) {
                setExtent(getPreferredWidth(), getPreferredHeight());
        }

        /* (non-Javadoc)
         * @see net.rim.device.api.ui.component.ButtonField#getPreferredWidth()
         */
        public int getPreferredWidth() {
                return bitmap.getWidth();
        }

        /* (non-Javadoc)
         * @see net.rim.device.api.ui.component.ButtonField#getPreferredHeight()
         */
        public int getPreferredHeight() {
                return bitmap.getHeight();
        }

        /* (non-Javadoc)
         * @see net.rim.device.api.ui.component.ButtonField#paint(net.rim.device.api.ui.Graphics)
         */
        protected void paint(Graphics graphics) {
                super.paint(graphics);
                int width = bitmap.getWidth();
                int height = bitmap.getHeight();
                Bitmap b = bitmap;
                if (highlighted)
                    b = bitmapHighlight;
                graphics.drawBitmap(0, 0, width, height, b, 0, 0);
        }

        public void setHighlight(boolean highlight)
        {
            this.highlighted = highlight;           
        }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BlackBerry 中的图像按钮 的相关文章

随机推荐

  • 使用 HttpURLConnection 将调用正文添加到 POST

    我正在尝试使用 HTTPURLConnection 对服务器 api 进行 POST 方法调用 我的通话正文的 JSON 版本是 grant type password username email protected cdn cgi l
  • Node.js:http.js:691 抛出新错误('发送后无法设置标头。')

    您好 我正在使用 MEAN 堆栈制作简单的应用程序 我收到此错误 http js 691 throw new Error 发送后无法设置标头 这是代码 服务器 js set up var express require express va
  • 使用 SINGLE_TABLE 继承策略运行条件时,“调用 getter of”时发生“IllegalArgumentException”

    我在尝试使用用简单限制装饰的休眠条件列出数据库中的对象时遇到此错误 Criteria criteria session createCriteria Licence class criteria add Restrictions eq gy
  • 当我只需要计数而不读取 Document-Db 数据库中的所有文档时,如何使用 Linq 构建 IQueryable 查询?

    我需要 Azure Cosmos Db 数据库的集合中存储的文档数量 如何使用 LINQ 查询获取计数IQueryable object docDbClient CreateDocumentQuery
  • Jenkins Pipeline - 在阶段之间传递 Artifact URL

    我的用例是构建一个 Java 作业 将 tar gz zip 部署到 nexus 并将此工件 URL 传递到后续阶段 我在执行其他验证的脚本中使用以下命令 mvn B clean deploy U package deploy deploy
  • React - 如何调整视频反应播放器的大小?

    我阅读了文档 https video react js org components player https video react js org components player 并尝试更改视频的宽度和高度 但没有成功 我在这里也发现
  • Facebook OAuth 突然停止工作

    昨天我注意到我网站的 Facebook 登录已停止工作 在过去的两个月里 这一直运行良好 据我所知 我没有改变任何东西 我已在链接上尝试了一切 例如 以及更多 ASP NET MVC5 OWIN Facebook 身份验证突然不起作用 ht
  • 使用 Eclipse RCP 程序进行打印

    我正在寻找一种好的 标准的方法来在我的 RCP 程序中生成 输出 并打印它 这应该像在 Windows Mac OS 和 Linux 上使用标准打印对话框一样工作 我知道 Birt 项目 但我找不到任何关于如何在 RCP 程序中实现它 如何
  • 在 JavaScript 中插入连字符

    在 JavaScript 中插入连字符的最简单方法是什么 我有一个电话号码 例如 1234567890 在前端显示时 我必须将其显示为123 456 7890使用 JavaScript 实现这一目标的最简单方法是什么 最快的方法是使用一些正
  • 沿着多线以匀称的方式插值每个 X 距离

    如果我有一个形状优美的多线对象 其中包含许多线 每条线的总长度为 50km 从原点追踪时 并且我想沿着多线每 X 米 假设 100m 进行插值 每 100m 返回形状优美的点对象 如何我能实现这个目标吗 这是我到目前为止所得到的 但它只返回
  • 将 MSTest 与 F# 结合使用

    是否可以在 VS2010 中将 MSTest 与 F 一起使用 人们已经多次问过这个问题 但我似乎无法在答案中找到解决方案 有人能够使用 MSTest 进行 F 单元测试吗 还是我应该坚持使用 NUnit 是的 您可以在 VS2010 中将
  • 使用文件名参数批量插入[重复]

    这个问题在这里已经有答案了 我需要将数千个数据文件加载到 SQL Server 表中 因此 我编写了一个只接收一个参数 文件名的存储过程 但是 以下内容不起作用 编译器 抱怨 FileName参数 它只需要纯字符串 如 file txt 提
  • jasmine angularjs 测试 - 参数“PhoneListCtrl”不是函数,未定义

    When running an angularjs Jasmine Karma test I got following error 我的测试脚本是 describe PhoneCat controllers function descri
  • 嵌入可执行文件中的 Qt 图标

    我的选项卡小部件上有一些按钮 这些按钮顶部需要有一些图标 我知道 QPixmap 允许我将图像放在按钮顶部 但我看到这些构造函数将文件路径作为参数 我想避免在构建后在文件中拖动图标 我想以某种方式将这些图标嵌入到可执行文件中 以减少为了使其
  • JavaDocs 抛出 IllegalArgumentException

    我正在使用 Intellij Idea 当我生成 JavaDocs 通过 工具 gt 生成 JavaDoc 时 我会抛出一个 IllegealArgumentException 异常 但没有任何有关发生问题的信息 即使没有 JavaDoc
  • pytest:无法模拟我的班级的 __init__

    我有一个习惯Db类 具有基本操作 我正在尝试围绕它编写测试 在 init 在我的班级中 我正在连接到我想避免的实际数据库 因为我只是编写单元测试 不需要连接到实际数据库 这是我的代码 mock patch mydb Db pytest ma
  • 调试服务

    我编写了一个带有远程接口的服务并将其安装在我的 PC 的 Eclipse AVD 上 我有一个客户端测试工具 它启动并调用服务中的方法 最初 我通过控制类和活动安装了该服务 现在我已将其删除 因此该服务的清单如下所示
  • 请求中的 URL 超出最大重试次数

    我正在尝试获取以下内容应用商店 gt 商业 https itunes apple com in genre ios business id6000 mt 8 import requests from lxml import html pag
  • Crystal Reports 文本截断详细信息部分中的最后一行

    我有一个 Crystal Report 11 文件 它是一封信 第一个详细信息部分包含一个大文本框 其中包含打印日期 地址块和称呼行 每隔一段时间 文本框的最后一行就会被切断 这样就看不到称呼了 这是非常不一致的 因为有时 我为系统中的一个
  • BlackBerry 中的图像按钮

    如何在 BlackBerry 中实现图像按钮 在这里 完整的代码 import net rim device api system Bitmap import net rim device api ui Graphics import ne