4

私の質問はかなり単純ですが、答えが見つかりませんでした。間違った用語を使用している可能性がありますが、試してみましょう: BlackBerry アプリケーション (通常の Screen コンポーネントを拡張) がステータスを維持する方法はありますか?バーが表示されますか (ステータス バーとは、明確にするために、バッテリーの強さ、ネットワーク名、信号の強さなどを表示する領域を意味します)?

ありがとうございました

4

4 に答える 4

3

まだ (OS バージョン 4.6 までの私の経験では) これを行う API は公開されていません。もちろん、必要に応じて、多くのアプリケーションが行うように、独自のステータス バーをプログラムすることもできます。ただし、情報を収集し、ロジックを独自のプログラムにコーディングしてステータス情報を表示する必要があります。

于 2009-11-22T20:10:49.037 に答える
2

ここにいくつかのサンプルコードがあります。まず、素敵なタイトル バーについては、こちらをご覧ください: http://www.naviina.eu/wp/blackberry/iphone-style-field-for-blackberry/

バッテリー強度の画像を表示するには:

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.DeviceInfo;
...
public static Bitmap getBatteryImage(){
        int batteryPercent = DeviceInfo.getBatteryLevel();
        int val = 1;
        if(batteryPercent > 80){
            val = 5;
        }else if(batteryPercent > 60 ){
            val = 4;
        }else if(batteryPercent > 40){
            val = 3;
        }else if(batteryPercent > 20){
            val = 2;
        }else {
            val = 1;
        }
        Bitmap batteryImage = Bitmap.getBitmapResource("mybattery"+val+".png");
        return batteryImage;
    }
...

イメージ mybattery1.png から mybattery5.png を作成し、それらを src フォルダーに配置する必要があります。開始するのに適したサイズは 28x11 ピクセルです (GIMP は優れた無料の画像エディターです)。Naviina.eu のタイトル バー コードを使用した場合は、次のコードを paint メソッドに挿入します。

protected void paint(Graphics graphics) {
...
        int w = this.getPreferredWidth();
        int h = this.getPreferredHeight();
        Bitmap batteryImage = getBatteryImage();
        int batteryStartY = (h - batteryImage.getHeight()) / 2;    
        graphics.drawBitmap(w - batteryImage.getWidth(), batteryStartY, w, h,
                batteryImage, 0, 0);
...
}

注意すべき点: 画面を無効にするか、別の画面にプッシュ/ポップしない限り、画像は更新されません。また、Pearl と Curve または Storm の小さい画像が必要になる場合もあります。

于 2009-11-23T23:35:12.913 に答える
1

StandardTitleBar を使用することもできますが、もう少し単純かもしれません。

http://www.blackberry.com/developers/docs/6.0.0api/net/rim/device/api/ui/component/StandardTitleBar.html

于 2011-01-17T21:16:21.013 に答える
0

実際には、MainScreen サブクラスにステータス情報を挿入できる場所が 3 つあります。

  • バナー領域 - 画面の上部にあります
  • タイトル領域 - バナー領域の下にあり、通常は背景が異なります
  • ステータス領域 - 画面下部

次のように、setBanner(Field)、setTitle(Field)、および setStatus(Field) を使用して情報を表示します。

    HorizontalFieldManager hfm = new HorizontalFieldManager();
    EncodedImage logo = EncodedImage.getEncodedImageResource("img/Logo.png");       
    Bitmap bm = logo.getBitmap();

    hfm.add(new BitmapField(bm));
    hfm.add(new LabelField("Banner area"));     
    setBanner(hfm);

    setTitle(new LabelField("Title area", LabelField.FIELD_HCENTER));
    setStatus(new LabelField("Status area", LabelField.FIELD_HCENTER));

利点は、各メソッドが Field を引数として受け入れ、プログラマーがマネージャーを使用して複雑な Field を構成できることです。

于 2010-05-02T15:45:37.803 に答える