0

あなたが何かをデザインしているとき、あなたはレイアウトから始めなければなりません。

通常、画面には次のものが含まれます。

 [         title bar                ]
 |----------------------------------|
 |                                  |
 |         layout/activity          |
 |                                  |
 |----------------------------------|
 [         menu bar                 ]

タイトルバーを削除しましたが、レイアウトまたはアクティビティの幅と高さを取得するためにメニューバーを考慮に入れようとしました。

私のことは、私がそれをonCreateで行うので、寸法はまだ理解されていないということです。プログラムの実行中は、layout.getWidth()を使用できます。該当するワークスペースの寸法を取得するにはどうすればよいですか?画面のサイズを取得した場合、それはフルスクリーンであり、メニューバーがカウントされるため、それは望ましくありません。

これはタブレット用で、メニューバーを削除することはできません。知っている人はいますか?

4

1 に答える 1

0

View がある場合は、View.post() を使用してスレッドのように実行できます (それが runnable と呼ばれる理由です)。これの利点は、これをルート レイアウトに実装すると、コンテンツが画面にポストされることです。これにより、探しているアセット、画面サイズを取得できます。

画面のサイズを取得できない理由は、プログラムのライフサイクルに基づいています。onCreate では画面に何もレンダリングされないため、実行のその時点までにコンテンツのサイズを知る方法はありません。

onCreate() のコード例:

LinearLayout ll = (LinearLayout)findViewById(R.id.LinearLayout);
ll.post(new Runnable(){
    public void run() {
        //get dimensions in here.   
    }
});
于 2012-10-09T13:50:22.527 に答える