Pregunta

Estoy tratando de hacer esto:

public class DialogMenuHawaii extends Dialog {

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

Pero no funciona.

¿Fue útil?

Solución

Abra su archivo '.res' en el editor de recursos y seleccione su tema preferido,

  1. En la pestaña 'no seleccionada' abra el DialogContentPane Estilo, si no tiene uno, cree el final del final de esta respuesta sobre cómo hacerlo?, y establezca la imagen de fondo en la imagen que necesita mostrar como diálogo BG
  2. En la pestaña 'no seleccionada' abra el Cuerpo de diálogo Estilo, si no tiene uno, cree que mira el final de esta respuesta sobre cómo hacerlo?, y establezca la transparencia de fondo como '0'Y también asegúrese de que el tipo de imagen de fondo sea NINGUNA

NOTA: El código anterior se reflejará para todos los diálogos de su aplicación. Si desea un cuadro de diálogo particular con imagen de fondo que obtener nuevos estilos de estos estilos predeterminados, y siga los pasos anteriores para aplicarlo a su DiálogoMenuhawaii o cualquier tiempo de ejecución Diálogo.

CÓMO: Te recomendaría que pases por las publicaciones de blog de Shai Tutorial del editor de recursos de Lwuit Parte 1 Hasta la Parte 10. Para comprender mejor al editor de Renouce sus características y capacidades.

:

:

:

PD: Programmatic-Ally no he podido lograrlo usando Textea ¿Cuál es el caso del diálogo predeterminado? Si reemplaza el componente del cuerpo de diálogo con Etiqueta Si funciona bien, la muestra de código se da a continuación. No he profundizado mucho en ¿por qué es así? Tal vez lo haga en mi tiempo libre. Por lo tanto, he propuesto una solución alternativa de trabajo que se escribe arriba utilizando el editor de recursos y a continuación utilizando el código

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

Otros consejos

Primero, le sugiero que use un tema. Cambiamos constantemente pequeños detalles de implementación, por ejemplo, personalizaciones, como la que está haciendo, no será portátil entre LWuit 1.4 y 1.5. No hay razón para no usar un tema para algo como esto.

Si está interesado en el dolor y el sufrimiento de codificar manualmente la lógica de la vista en su aplicación, puede usar varios métodos, como getDialogComponent() Para obtener el estilo de ellos y manipular eso. El diálogo es una bestia compleja debido al hecho de que realmente es una forma remolada de los bordes.

Esto es para antecedentes de diálogo.

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

Si desea establecer la transparencia del diálogo con la imagen.

dialog.getStyle().setBgImage(Image.createImage("/image/image.png");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top