ボタン、テキストフィールド、画像を設定して、シミュレータIPhone6を完璧に見ています。 それから、私は実際のIPhone 6に載せましたが、いくつかの違いがあります。 画像が中央ではなく、一方のボタンが外側にあります。 GUIビルダーなしで手作業でプログラムします。 ボタン、ラベル、テキストフィールドを設定する最も良い方法は... が正しくハードウェアに配置されるようにすることですか?シミュレータはIPhoneとは異なります
ここに私のサンプルコード:
Form dlgpass = new Form("");
dlgpass.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
Image img2;
try {
img2 = Image.createImage("/xz.jpg");
Container cco2 = BoxLayout.encloseX();
Label llc1 = new Label(" ");
Label llc2 = new Label(" ");
cco2.getStyle().setMarginBottom(50);
cco2.getStyle().setMarginTop(20);
cco2.add(llc1).add(img2).add(llc2);
dlgpass.add(cco2);
Label ll4 = new Label(" ");
Label ll5 = new Label(" ");
Container cco3 = BoxLayout.encloseX();
Label llc3 = new Label(„test");
cco3.getStyle().setMarginTop(100);
cco3.add(ll4).add(llc3).add(ll5);
Container cco4 = BoxLayout.encloseX();
TextField pa = new TextField("", "Password", 16, TextField.PASSWORD);
Label ll6 = new Label(" ");
Label ll7 = new Label(" ");
cco4.getStyle().setMarginTop(60);
cco4.add(ll6).add(pa).add(ll7);
dlgpass.add(cco4);
Button logi = new Button(" login ");
logi.addActionListener((e) -> chlogi(pa.getText(),ce));
Label ll1 = new Label(" ");
Label ll2 = new Label(" ");
Container cco1 = BoxLayout.encloseX();
cco1.getStyle().setMarginTop(60);
cco1.add(ll1).add(logi).add(ll2);
dlgpass.add(cco1);
画像は24ビットカラーで629x810ピクセルです。 これはログインするスプラッシュスクリーンです。
写真:
EDIT チェン、これは私が試したものです。それはあなたが意味するものですか?効果的にレイアウトマネージャを使用して、このビデオhttps://www.codenameone.com/how-do-i---positioning-components-using-layout-managers.htmlをチェックアウトレイアウト位置決めポータビリティを理解することが
Form dlgpass = new Form("", new BorderLayout());
Image img2;
img2 = Image.createImage("/xx.jpg");
ScaleImageLabel simg = new ScaleImageLabel(img2);
dlgpass.add(BorderLayout.CENTER, simg);
Container cco = new Container(new BorderLayout());
TextField pa = new TextField("", "Password", 16, TextField.PASSWORD);
cco.addComponent(BorderLayout.NORTH,pa);
FlowLayout flow = new FlowLayout(Component.CENTER);
flow.setValign(Component.BOTTOM);
Container cco1 = new Container(flow);
Button logi = new Button(" login ");
logi.addActionListener((e) -> chlogi(pa.getText(),ce));
cco1.addComponent(logi);
cco.addComponent(BorderLayout.SOUTH,cco1);
dlgpass.addComponent(BorderLayout.SOUTH,cco);
(常にミリを使用)コンポーネント上setUIID()を使用し、テーマに余白および/またはパディングを調整これと異なるサンプルは、このhttps://www.codenameone.com/blog/pixel-perfect-material-buttons.htmlが原因である可能性がありますが、あなたの説明に基づいて、それは密度の問題です。 –
後で提供する予定のコードと画像です。 [リンク](https://stackoverflow.com/questions/42887456/codename-one-user-interface-layout-on-simulator-and-a-real-android-device-are-c?rq = 1)、 xy座標のボタンを画面の幅と高さにパーセンテージで設定する方法はありますか? もしそうなら、IOSやAndroidなどで問題はありません。 – orgen