Domanda

Voglio impostare lo sfondo di orizzontefieldmanager. Il codice di esempio che ho cercato sta impostando lo sfondo utilizzando il gradiente per lo sfondo della schermata principale.

 //create gradient linear for background
 this.getMainManager().setBackground(BackgroundFactory.createLinearGradientBackground(0x0099CCFF,
                            0x0099CCFF,0x00336699,0x00336699)
                        );
.

Quindi cerco di utilizzare lo stesso schema per impostare lo sfondo su orizzontalfieldmanager, poiché ha questo metodo.Ma non funzionerà.Ecco il codice

            HorizontalFieldManager hManager = new HorizontalFieldManager();

    Bitmap bitmapImage = null;

    bitmapImage = Bitmap.getBitmapResource("img/home.png");
    tabHome = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    bitmapImage = Bitmap.getBitmapResource("img/in.png");
    tabCheckInOut = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    bitmapImage = Bitmap.getBitmapResource("img/barcode.png");
    tabBarcode = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    bitmapImage = Bitmap.getBitmapResource("img/options.png");
    tabOptions = new BitmapField(bitmapImage, BitmapField.FOCUSABLE
            | BitmapField.HIGHLIGHT_FOCUS);

    tabHome.setFocusListener(this);
    tabCheckInOut.setFocusListener(this);
    tabBarcode.setFocusListener(this);
    tabOptions.setFocusListener(this);

    Background topBack = BackgroundFactory.createSolidBackground(0x00606A85);
    hManager.setBackground(topBack);

    hManager.add(tabHome);
    hManager.add(tabCheckInOut);
    hManager.add(tabBarcode);
    hManager.add(tabOptions);

    add(hManager);
.

Sto usando orizzontalefieldmanager e aggiungi 4 bitmapfield, quindi uso in backgroundFactory per creare solidbackground e impostarlo sul gestore Ma quando lo eseguo, il colore di sfondo non si applica.L'esempio del gradiente funziona bene.C'è qualcosa che mi manca?Per favore aiutami.

Grazie

È stato utile?

Soluzione

Dopo aver effettuato una ricerca web profonda.Ecco la risposta ragazzi

HorizontalFieldManager manager = new HorizontalFieldManager()
{
    public void paint(Graphics graphics)
    {
        graphics.setBackgroundColor(0x000000FF);//blue
        graphics.clear();
        super.paint(graphics);
    }
};
.

Aggiornamento: Devi usare solo il colore del web come 0x0066996F dovrebbe funzionare Ma 0x00606A85 non funzionerebbe. Se si desidera un colore specifico, ti consiglio di usare bitmap.

Aggiornamento: Un'altra soluzione

 HorizontalFieldManager manager = new HorizontalFieldManager(Field.USE_ALL_WIDTH);
 manager.setBackground(BackgroundFactory.BackgroundFactory
            .createSolidBackground(0x00cccccc));
.

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