首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >黑莓自定义ButtonField

黑莓自定义ButtonField
EN

Stack Overflow用户
提问于 2012-06-27 17:23:26
回答 2查看 289关注 0票数 0

This是我启动activity时的默认外观。

在我玩完轮子跟踪垫之后,就会变得像this一样。按钮图像或整个按钮丢失。

这是我的自定义按钮字段,它是extends ButtonField

代码语言:javascript
复制
public class Custom_ButtonField extends ButtonField {
Bitmap mNormal;
Bitmap mFocused;
Bitmap mActive;

int mWidth;
int mHeight;

public Custom_ButtonField(Bitmap normal, Bitmap focused, 
    Bitmap active) {
    super(CONSUME_CLICK);
    mNormal = normal;
    mFocused = focused;
    mActive = active;
    mWidth = mNormal.getWidth();
    mHeight = mNormal.getHeight();
    setMargin(0, 0, 0, 0);
    setPadding(0, 0, 0, 0);
    setBorder(BorderFactory
                    .createSimpleBorder(new XYEdges(0, 0, 0, 0)));
    setBorder(VISUAL_STATE_ACTIVE, BorderFactory
                    .createSimpleBorder(new XYEdges(0, 0, 0, 0)));
}

protected void paint(Graphics graphics) {
    Bitmap bitmap = null;
    switch (getVisualState()) {
    case VISUAL_STATE_NORMAL:
            bitmap = mNormal;
            break;
    case VISUAL_STATE_FOCUS:
            bitmap = mFocused;
            break;
    case VISUAL_STATE_ACTIVE:
            bitmap = mActive;
            break;
    default:
            bitmap = mNormal;
    }
    graphics.drawBitmap(0, 0, bitmap.getWidth(), bitmap.getHeight(),
                    bitmap, 0, 0);
}

public int getPreferredWidth() {
    return mWidth;
}

public int getPreferredHeight() {
    return mHeight;
}

protected void layout(int width, int height) {
    setExtent(mWidth, mHeight);
}
}
EN

回答 2

Stack Overflow用户

发布于 2012-06-27 18:51:54

看起来您正在尝试创建一个带有图像的按钮,所以使用RIM发布的Advanced UI Library可能会更好。看一下BitmapButtonField类。

票数 1
EN

Stack Overflow用户

发布于 2012-06-27 19:51:10

在构造函数上设置可聚焦。

代码语言:javascript
复制
super(Field.FOCUSABLE);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11223071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档