0

解決済み:

Zoltán が書いたように、私はステータスバーとタイトルバーを考慮しませんでした (どちらも高さ 25 です)。

Activity 内の onClickListener メソッドで次のコードを使用し、結果を Service クラスに転送して出力しました。

Rect rectgle = new Rect();
Window window = getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight = rectgle.top;
int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int TitleBarHeight = contentViewTop - StatusBarHeight;

serviceIntent.putExtra("Titlebarheight", Integer.toString(TitleBarHeight));
serviceIntent.putExtra("Statusbarheight", Integer.toString(StatusBarHeight));

-------------------------------------------------- ------------------------------------------------------

main.xmlでImageView のレイアウトの高さを設定しようとしていますが、layout_height を 270dp (または px) に設定すると、画面全体が上から下までいっぱいになりますが、画面サイズは実際には 320x240 (HTC マジック- Android 1.5) - 画面を上から下までいっぱいにしないでください。

アクティビティ内のコード:

Display display = getWindowManager().getDefaultDisplay();
Log.i("Screen height", Integer.toString(display.getHeight())); // Returns 320
Log.i("Screen width", Integer.toString(display.getWidth())); // Returns 240

main.xml 内のコード:

<ImageView
    android:id="@+id/bitmapImageView"
    android:layout_height="270dp" // Fills up the whole screen from top to bottom
    android:layout_width="50dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:background="#FFFFFF"
    android:src="@drawable/ic_launcher" />

なぜこうなった?どうすれば修正できますか?

レイアウトの高さとして 270 を使用する場合の例:

レイアウトの高さとして 240 を使用する場合の例:

4

2 に答える 2

2

参照: Android の画面解像度スケールに依存しないピクセル

基本的に、dp (ディスプレイに依存しないピクセル) はすべてのディスプレイで同じサイズではありません。あなたの解像度で 1dp =~ .75px

フルスクリーン アクティビティを実行するには、以下を参照してください: Android でのフルスクリーン アクティビティ?

具体的には、android:theme="@android:style/Theme.NoTitleBar.Fullscreen"そのアクティビティの Android マニフェストで次を設定します。

于 2012-07-10T07:45:01.357 に答える
1

ImageViewアプリケーションのステータス バーとタイトル バーの高さは、XML から判断すると 50pxの幅とほぼ同じに見えます。

したがって、50px + 270px = 320px が画面全体の高さ (ステータス バーとタイトル バーを含む) になります。

于 2012-07-10T07:52:00.273 に答える