您可以使用覆盖 ImageView 类的 onMeasure() 方法的自定义视图来实现此目的。下面是自定义视图,以及与您问题中的图像匹配的布局。
(注意,此方法没有考虑 ActionBar 占用的空间量。如果您使用的是自定义视图的测量值,则需要进一步调整。)
package com.example.testview;
import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.ImageView;
public class FullScreenImageView extends ImageView {
private DisplayMetrics mMetrics;
public FullScreenImageView(Context context, AttributeSet attrs) {
super(context, attrs);
mMetrics = new DisplayMetrics();
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
WindowManager windowManager = (WindowManager) ((Activity)getContext()).getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(mMetrics);
setMeasuredDimension(mMetrics.widthPixels, mMetrics.heightPixels);
}
}
布局 xml 将类似于:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<com.example.testview.FullScreenImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Title" />
<Text
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text" />
</LinearLayout>
</ScrollView>