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 回答