8

下部にあるナビゲーションバーの高さをピクセル単位で測定する方法はありますか?

4

2 に答える 2

6

ちなみに...実際の数を探してこの質問に出くわした私のような他の人にとっては、48ピクセルです(少なくともMotorola Xoomでは)。これは、この(明らかに粗雑な)テストアクティビティのデバッグ出力に基づいており、タイトルバーのないテーマ(@ android:style / Theme.NoTitleBarなど)と、高さと幅の両方が「」に設定されたシングルビューのLinearLayoutと組み合わされています。 match_parent "(たとえば、新しいAndroidアプリの作成時に作成されたもの):

package com.sample.layouttest;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnLayoutChangeListener;

public class Main extends Activity implements OnLayoutChangeListener {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        View newView = getLayoutInflater().inflate(R.layout.main, null);
    newView.addOnLayoutChangeListener(this);
    setContentView(newView);
    }

    @Override
    public void onLayoutChange(View view, int left, int top, int right,
            int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
        Log.d("LayoutTest","left="+left+", top="+top+", right="+right+", bottom="+bottom);
    }
}

Android3.1を実行しているMotorolaXoom(および3.0を実行しているSamsung Galaxy 10.1V)では、ポートレートモードに入ったときのonLayoutChangeメソッドからの出力は次のとおりです。

05-24 15:11:43.047: DEBUG/LayoutTest(8658): left=0, top=0, right=800, bottom=1232

そして風景に入るとき:

05-24 15:13:18.837: DEBUG/LayoutTest(8658): left=0, top=0, right=1280, bottom=752
于 2011-04-15T17:40:34.697 に答える
4

その間に私は解決策を見つけました。OnLayoutChangeListenerhonycombに新しいイベントがあり、レイアウトが終了するのを待ってから、画面サイズではなくレイアウトのサイズを測定できます。

于 2011-03-11T12:42:35.047 に答える