2

我需要在我的应用程序视图中显示一些链接。但我找不到任何关于它的信息。可能吗??

我想将 browsercontent(field) 放置在 os <5.00 的灰色区域?

应该是这张图

4

1 回答 1

0

如果要显示作为超链接的字段,请使用以下代码。

 package com.myApp.controls;

 import net.rim.device.api.ui.Color;
 import net.rim.device.api.ui.Field;
 import net.rim.device.api.ui.Font;
 import net.rim.device.api.ui.Graphics; 
 public class HrefField extends Field {

private String content;
private Font fieldFont;
private int fieldWidth;
private int fieldHeight;
private boolean active = false;
private int backgroundColour = Color.WHITE;
private int textColour = Color.BLACK;
private int[] drawFocusColors;

public HrefField(String content) {
    super(Field.FOCUSABLE);
    this.content = content;
    fieldFont = Font.getDefaultFont();
    fieldWidth = fieldFont.getAdvance(content) + 2;
    fieldHeight = fieldFont.getHeight() + 3;
    drawFocusColors = new int[] { Color.ORANGE,
            Color.ORANGE,Color.RED,
            Color.RED};
}

public void setColours(int backgroundColour, int textColour) {
    this.backgroundColour = backgroundColour;
    this.textColour = textColour;
    invalidate();
}

public void setBackgroundColour(int backgroundColour) {
    this.backgroundColour = backgroundColour;
    invalidate();
}

public void setTextColour(int textColour) {
    this.textColour = textColour;
    invalidate();
}

public void setMaskColour() {
    invalidate();
}

public void setFont(Font fieldFont) {
    this.fieldFont = fieldFont;
}

public int getPreferredWidth() {
    return fieldWidth;
}

public int getPreferredHeight() {
    return fieldHeight;
}

protected void layout(int arg0, int arg1) {
    setExtent(getPreferredWidth(), getPreferredHeight());
}

protected void paint(Graphics graphics) {
    int[] X_PTS = new int[] { 0, fieldWidth, fieldWidth, 0 };
    int[] Y_PTS = { 0, 0, fieldHeight, fieldHeight };
    if (active) {
        graphics.drawShadedFilledPath(X_PTS, Y_PTS, null, drawFocusColors,
                null);
    } else {
        graphics.setColor(backgroundColour);
        graphics.fillRect(0, 0, fieldWidth, fieldHeight);
    }

    graphics.setColor(textColour);
    graphics.setFont(fieldFont);
    graphics.drawText(content, 1, 1);
    graphics.drawLine(1, fieldHeight - 2, fieldWidth - 2, fieldHeight - 2);
}

protected boolean navigationClick(int status, int time) {
    fieldChangeNotify(1);
    return true;
}

protected void onFocus(int direction) {
    active = true;
    invalidate();
}

protected void onUnfocus() {
    active = false;
    invalidate();
}

}

于 2012-01-16T10:47:44.393 回答