2017-04-07 4 views
1

コードネーム1の新機能、Android "ネイティブ" Java開発から移行。コードネーム1 - ScaleImageLabelの不要なパディング/スペーシング

ほぼすべてのGoogleアプリ(Playストアなど)に見られるように、素材のサイドメニューに似ているサイドメニューデザインを作成しようとしています。ヘッダー画像を皮切りに、私は上部と下部にいくつかのパディングを取り除くように見えることはできません。

simulator screenshot

上部と下部に白いバーが不要です。現在のコード:

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

よりよい解決策を持っているか、これは私の解決策は、実際の答えよりもハックの詳細ですので、何が起こっているかの場合で、または理由を正確少なくとも説明することができます。

答えて

1

BACKGROUND_IMAGE_SCALED_FILLはアスペクト比を維持する必要があります。スペースの短い次元を「塗りつぶす」ようにイメージのサイズを変更します。長い方の寸法がクリップされます。

BACKGROUND_IMAGE_SCALEDは、スペースを埋めるために伸びますが、縦横比は保持しません。

BACKGROUND_IMAGE_SCALED_FITもアスペクト比を維持します。スペースのより長い次元を「塗りつぶす」ようにイメージのサイズを変更します。スクリーンショットで見られるように、短い次元は「レターボックス」です。

+0

FILLはアスペクト比を維持しますが、より長い次元をクリップするだけです。しかし、私はクリッピングが一切ありません。私はそれが*レターボックスなしでスペースの長い次元を埋めるようにしたい。このレターボックスはどこから来ていますか?私はちょうどそれが上部にぴったりとフィットし、下部に空白がないようにしたい。 – CosmicDan

+0

また、 'StatusBarSideMenu'のスタイルを0のパディング/マージンにする –

関連する問題