-1

画面の上部にopenGLviewとヘッダー画像があるFrameLayout(すべての画面はFL)があります。ここで、LinearLayoutで作成された2つのボタンのメニューを表示したいと思います。

LLメニューは、画面上部から100ピクセル下のフレームレイアウトに表示されている必要があります。

どうすればそれを達成できますか?このコードを試してみましたが、正しく機能していません。メニューは画面上部から100ピクセル下に表示されていますが、メニューの上部がペイントされています。これは望ましくありません。メニューの上部が必要です。メニューの色で塗られていません。フローティングメニューである必要があります。

メニューの上部をメニューの色でペイントせずに、画面の上部から100ピクセル下にメニューを描画する別の方法があると確信しています。

私のコード(上部の色の問題あり):

        ///////////////sub menu de shareit////////////////
    LinearLayout sharellContainer = new LinearLayout(this);
    sharellContainer.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout sharell = new LinearLayout(this);
    sharell.setOrientation(LinearLayout.VERTICAL);
    sharell.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    //LinearLayout.LayoutParams sharellParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    //sharellParams.gravity=Gravity.CENTER; 
    sharell.setPadding(10, shareit.getHeight()+80, 10, 10);
    sharell.setBackgroundColor(0xFF383838);
    //sharell.setLayoutParams(sharellParams);

    share= new ImageButton(this);
    selector(share, R.drawable.but_share_up,R.drawable.but_share_down);
    LinearLayout.LayoutParams shareParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    shareParams.setMargins(0, 0, 0, 10); //dejo un espacio entre este botón y el siguiente
    share.setLayoutParams(shareParams);
    sharell.addView(share);

    web= new ImageButton(this);
    selector(web, R.drawable.but_web_up,R.drawable.but_web_down);
    sharell.addView(web);

    sharellContainer.addView(sharell);
    sharellContainer.setGravity(Gravity.RIGHT); 

    //////////////////////////////////////////////////

。。。

        fl.addView(squareGLSurfaceView);
    fl.addView(rl);
    fl.addView(sharellContainer);
    setContentView(fl);     
4

2 に答える 2

2

問題は、paddingではなく使用していることですmargins。パディングはビューの背景色を取得しますが、マージンは取得しません。
ビューに与える LayoutParams にマージンを追加する必要があります。

于 2012-03-09T15:11:19.380 に答える
0

XML レイアウトを使用すると、これは非常に簡単になります。作成中のものを表示し、個々のプロパティを設定することもできます。これにより、ロジックをビューから分離し、MVVM 設計パターンに準拠することもできるため、将来の更新がより簡単に実行できるようになり、より柔軟なシステムが得られます。

于 2012-03-09T14:29:38.607 に答える