Как я могу использовать браузер Blackberry в моем представлении hiearchy? - PullRequest
2 голосов
/ 16 января 2012

Мне нужно показать некоторые ссылки в представлениях моего приложения. Но я ничего не могу найти по этому поводу. это возможно ??

Я хочу разместить содержимое браузера (поле) там, где серая область для os <5.00? </p>

must be this image

1 Ответ

0 голосов
/ 16 января 2012

Если вы хотите показать поле, которое является гиперссылкой, используйте следующий код:

 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();
}

}

...