Domanda

sto cercando di fare questo:

public class DialogMenuHawaii extends Dialog {

    Style s = UiFactory.getBaseStyle();
    s.setBgTransparency(0);
    s.setBgImage( <my image >);
    this.setUnselectedStyle(s);
}

, ma non funziona.

È stato utile?

Soluzione

Aprire il file' res in risorse Editor e selezionare il tema preferito,

  1. scheda Sotto 'Unselected' aprire la DialogContentPane stile, se non si dispone di uno creare apparire alla fine di questa risposta su come fare IT ?, e impostare l'immagine di sfondo per la immagine è necessario mostrare come Dialog bg
  2. scheda Sotto 'Unselected' aprire la DialogBody stile, se non si dispone di uno creare apparire alla fine di questa risposta su come fare IT ?, e impostare la trasparenza di sfondo come ' 0 ' e anche assicurarsi che il tipo di immagine di sfondo è NONE

Nota : il codice sopra rifletterà per tutte le finestre di dialogo nell'applicazione. Se si desidera una particolare finestra immagine di sfondo di nuovi stili derivano da questi stili predefiniti con, e seguire i passaggi precedenti per applicare al vostro DialogMenuHawaii o qualsiasi runtime Finestre di dialogo .

COME: ti consiglierei di passare attraverso i post del blog del Shai LWUIT Resource Editor Tutorial parte 1 fino parte 10. Per comprendere meglio il resouce Editor sue caratteristiche e funzionalità.

PS: Programmatico-alleato non sono stato in grado di raggiungere utilizzando TextArea , che è il caso per difetto di dialogo di. Se si sostituisce la componente del corpo finestra di dialogo con Label se funziona bene, il codice di esempio è riportata qui sotto. Non ho approfondito molto in perché è così? forse lo farà nel tempo libero. Quindi ho proposto una soluzione alternativa di lavoro che viene script sopra utilizzando Editor risorse e di seguito utilizzando il codice

class MyDialog extends Dialog {

    public void show() {
        Container octnPane = this.getDialogComponent();
        octnPane.getUnselectedStyle().setBgTransparency(0, false);

        Container ctnPane = (Container)((BorderLayout)octnPane.getLayout()).getCenter();
        ctnPane.getUnselectedStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED, false);
        ctnPane.getUnselectedStyle().setBgImage(myImage, false);

        Label t = new Label("Dialog");
        t.setUIID("DialogBody");
        t.getUnselectedStyle().setBgTransparency(0, false);
        ctnPane.addComponent(t);

        super.show();
    }
}

Altri suggerimenti

In primo luogo, vi suggerisco di utilizzare un tema . Cambiamo costantemente piccoli dettagli di implementazione per esempio personalizzazioni come quello che si sta facendo non sarà portabile tra LWUIT 1.4 e 1.5. Non v'è alcun motivo per non usare un tema per una cosa del genere.

Se siete interessati al dolore e la sofferenza di logica vista la codifica manualmente nella vostra applicazione è possibile utilizzare diversi metodi come getDialogComponent() per ottenere lo stile da loro e manipolare questo. Dialogo è una bestia complessa a causa del fatto che la sua realtà una forma imbottito lontano dai bordi.

Questo è per Dialog sfondo.

Dialog dialog = new Dialog();
dialog.getDialogStyle().setBgImage(Image.createImage("/image/image.png"));

Se si vuole la trasparenza set di dialogo con l'immagine.

dialog.getStyle().setBgImage(Image.createImage("/image/image.png");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top