2

私はこれをやろうとしています:

public class DialogMenuHawaii extends Dialog {

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

しかし、うまくいきません。

4

3 に答える 3

2

まず、テーマを使用することをお勧めします。私たちは常に小さな実装の詳細を変更しています。たとえば、あなたが行っているようなカスタマイズは LWUIT 1.4 と 1.5 の間で移植できません。このようなテーマを使用しない理由はまったくありません。

ビュー ロジックをアプリケーションに手動でコーディングすることの苦痛と苦痛に関心がある場合はgetDialogComponent()、それらからスタイルを取得して操作するなど、いくつかの方法を使用できます。ダイアログは、実際にはエッジからパディングされたフォームであるため、複雑な獣です。

于 2011-12-01T06:38:10.137 に答える
1

リソース エディターで「.res」ファイルを開き、好みのテーマを選択します。

  1. 'Unselected' タブでDialogContentPaneスタイルを開きます。作成していない場合は、HOW TO DO IT? のこの回答の最後を見て、背景画像を Dialog bg として表示する必要がある画像に設定します。
  2. 「未選択」タブでDialogBodyスタイルを開きます。作成していない場合は、HOW TO DO IT?のこの回答の最後を見て、背景の透明度を「0」に設定し、背景画像の種類を確認してくださいなし_

: 上記のコードは、アプリケーション内のすべてのダイアログに反映されます。これらのデフォルト スタイルから新しいスタイルを派生させるよりも、背景画像を含む特定のダイアログが必要な場合は、上記の手順に従って、それをDialogMenuHawaiiまたは任意のランタイムDialogsに適用します。

HOW TO: Shai のブログ投稿LWUIT リソース エディター チュートリアル パート 1からパート 10 に目を通すことをお勧めします。リソース エディターの機能と機能をよりよく理解するためです。

:

:

:

PS:プログラム的には、デフォルトのダイアログの場合であるTextAreaを使用してそれを達成できませんでした。ダイアログ本体コンポーネントをLabelに置き換えて正常に動作する場合のコード サンプルを以下に示します。なぜそうなのかについてはあまり掘り下げていませんか?多分私の暇な時にそれをするでしょう。したがって、リソースエディターを使用して上記でスクリプト化され、コードを使用して以下でスクリプト化された、実用的な代替ソリューションを提案しました

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();
    }
}
于 2011-11-29T16:31:54.193 に答える
0

これはダイアログの背景用です。

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

ダイアログの透明度を画像で設定したい場合。

dialog.getStyle().setBgImage(Image.createImage("/image/image.png");
于 2012-05-08T09:45:01.477 に答える