BlackBerry - Come mostra la barra di stato nella parte superiore della schermata dell'applicazione

StackOverflow https://stackoverflow.com/questions/1778323

Domanda

La mia domanda è piuttosto semplice, ma non riuscivo a trovare una risposta, potrebbe essere perché sto usando i termini sbagliati, ma ci provo:c'è un modo per una applicazione BlackBerry (estensione del normale componente della Schermata) per mantenere la barra di stato visibile (dalla barra di stato, per chiarire, io intendo la zona dove si vede il livello di carica della batteria, il nome della rete, la potenza del segnale, etc.)?

grazie

È stato utile?

Soluzione

Non esiste ancora (nella mia esperienza fino a OS versione 4.6) non API esposte per fare questo, per quanto strano che è. Si può del programma del corso la propria barra di stato, come molte applicazioni fanno, se si sente la necessità. Ma bisogna raccogliere le informazioni e visualizzare le informazioni di stato con la logica codificato nel proprio programma.

Altri suggerimenti

Ecco alcuni esempi di codice. In primo luogo, per una bella barra del titolo, guarda qui: http: //www.naviina.eu/wp/blackberry/iphone-style-field-for-blackberry/

Per visualizzare un'immagine di carica della batteria:

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;
    }
...

È necessario creare immagini mybattery1.png a mybattery5.png, e metterli nella cartella src. Una buona dimensione per iniziare è pixel 28x11 (GIMP è un editor di immagini gratuito buono). Se è stato utilizzato il codice a barre del titolo da Naviina.eu, quindi inserire il seguente codice nel metodo vernice, in questo modo:

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

Alcune cose da notare: l'immagine (s) non si aggiorna a meno che non invalidare la schermata o push / pop a un'altra schermata. Inoltre, si consiglia le immagini più piccole per una perla contro una curva o tempesta.

È possibile utilizzare lo StandardTitleBar, potrebbe essere un po 'più semplice.

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

In realtà ci sono tre posti dove è possibile inserire le informazioni di stato in un MainScreen sottoclasse:

  • Banner zona - è situato nella parte superiore dello schermo
  • Area del titolo - è sotto l'area del Banner e normalmente ha uno sfondo diverso
  • Area di stato - in basso dello schermo

Si utilizza setBanner(Campo), setTitle(Campo) e setStatus(Campo) per visualizzare le informazioni indicate come segue:

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

Il vantaggio è che ogni metodo accetta un Campo come argomento e il programmatore può comporre un complesso Campo con i gestori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top