私はこれをやろうとしています:
public class DialogMenuHawaii extends Dialog {
Style s = UiFactory.getBaseStyle();
s.setBgTransparency(0);
s.setBgImage( <my image >);
this.setUnselectedStyle(s);
}
しかし、うまくいきません。
私はこれをやろうとしています:
public class DialogMenuHawaii extends Dialog {
Style s = UiFactory.getBaseStyle();
s.setBgTransparency(0);
s.setBgImage( <my image >);
this.setUnselectedStyle(s);
}
しかし、うまくいきません。
まず、テーマを使用することをお勧めします。私たちは常に小さな実装の詳細を変更しています。たとえば、あなたが行っているようなカスタマイズは LWUIT 1.4 と 1.5 の間で移植できません。このようなテーマを使用しない理由はまったくありません。
ビュー ロジックをアプリケーションに手動でコーディングすることの苦痛と苦痛に関心がある場合はgetDialogComponent()
、それらからスタイルを取得して操作するなど、いくつかの方法を使用できます。ダイアログは、実際にはエッジからパディングされたフォームであるため、複雑な獣です。
リソース エディターで「.res」ファイルを開き、好みのテーマを選択します。
注: 上記のコードは、アプリケーション内のすべてのダイアログに反映されます。これらのデフォルト スタイルから新しいスタイルを派生させるよりも、背景画像を含む特定のダイアログが必要な場合は、上記の手順に従って、それを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();
}
}
これはダイアログの背景用です。
Dialog dialog = new Dialog();
dialog.getDialogStyle().setBgImage(Image.createImage("/image/image.png"));
ダイアログの透明度を画像で設定したい場合。
dialog.getStyle().setBgImage(Image.createImage("/image/image.png");