コードネーム1の新機能、Android "ネイティブ" Java開発から移行。コードネーム1 - ScaleImageLabelの不要なパディング/スペーシング
ほぼすべてのGoogleアプリ(Playストアなど)に見られるように、素材のサイドメニューに似ているサイドメニューデザインを作成しようとしています。ヘッダー画像を皮切りに、私は上部と下部にいくつかのパディングを取り除くように見えることはできません。
上部と下部に白いバーが不要です。現在のコード:
public void start() {
if (current != null) {
current.show();
return;
}
home = new Home();
// SideMenu header BG image
Image headerImage = theme.getImage("bg_navdrawer_header.png");
ScaleImageLabel sideMenuHeaderBg = new ScaleImageLabel(headerImage);
sideMenuHeaderBg.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
// SideMenu header app title
Label sideMenuHeaderLabel = new Label("Title");
sideMenuHeaderLabel.setUIID("SideMenuHeaderTitle");
Container sideMenuHeader = new Container();
sideMenuHeader.add(LayeredLayout.encloseIn(sideMenuHeaderBg, FlowLayout.encloseBottom(sideMenuHeaderLabel)));
home.getToolbar().addComponentToSideMenu(sideMenuHeader);
home.show();
}
私はBACKGROUND_IMAGE_SCALED_FILLを使用する場合、白バーは消えますが、それはアスペクト比を維持していない - それは、これら二つの空白を埋めるために広がっています。 (編集:それは縦横比を保持しますが、より長い次元をクリップします)。私はUIIDを "Container"に設定しようとしましたが、何も違いはありません。
アイデア?
UPDATE:何らかの理由で
、すぐに背景の種類は、それを解決し設定した後ScaledImageView上にsetWidthを呼び出します。幅が何であっても、何でも数字ではなく、「レターボックス」がなくなり、高さがあるはずです。ケースの誰かにこのオープンを残して行く
はScaleImageLabel sideMenuHeaderBg = new ScaleImageLabel(headerImage);
sideMenuHeaderBg.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);
sideMenuHeaderBg.setWidth(0);
よりよい解決策を持っているか、これは私の解決策は、実際の答えよりもハックの詳細ですので、何が起こっているかの場合で、または理由を正確少なくとも説明することができます。
FILLはアスペクト比を維持しますが、より長い次元をクリップするだけです。しかし、私はクリッピングが一切ありません。私はそれが*レターボックスなしでスペースの長い次元を埋めるようにしたい。このレターボックスはどこから来ていますか?私はちょうどそれが上部にぴったりとフィットし、下部に空白がないようにしたい。 – CosmicDan
また、 'StatusBarSideMenu'のスタイルを0のパディング/マージンにする –