Android 如何缩放图像以填充屏幕

Android 如何缩放图像以填充屏幕,android,image-scaling,Android,Image Scaling,我的问题是: 我使用安卓模拟器,目标是安卓2.2。 我创建了一个自定义视图,我想处理我的应用程序的背景,在这个视图中,我只想显示一个图像,但我希望它填充整个屏幕 我从“活动”中初始化视图,如下所示: BackgroundView bw=新的BackgroundView(本) 问题是: 在我的硬盘上,我使用的资源图像是500x375像素。致电后: 位图m_resourceBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.sc

我的问题是: 我使用安卓模拟器,目标是安卓2.2。 我创建了一个自定义视图,我想处理我的应用程序的背景,在这个视图中,我只想显示一个图像,但我希望它填充整个屏幕

我从“活动”中初始化视图,如下所示: BackgroundView bw=新的BackgroundView(本)

问题是: 在我的硬盘上,我使用的资源图像是500x375像素。致电后:

位图m_resourceBitmap=BitmapFactory.decodeResource(getResources(),R.drawable.scape_1); int nWidth=m_resourceBitmap.getWidth(); int nHeight=m_resourceBitmap.getHeight()

返回的nWidth和nHeight取决于我放置资源的位置,如果我将其放置在“drawable mdpi”中,则会得到原始大小,否则会得到其他大小

另一方面,如果我问视图它的宽度和高度 这是getWidth(); 这是getHeight()

我得到了固定值,但与我期望的设备分辨率不同(我设置了480x800设备,得到了320x533)

最后,如果我尝试用视图维度除以图像维度来创建一个比例矩阵,结果在屏幕上是一个比屏幕小得多的图像

我的问题是:
我应该问什么问题?从哪些对象中,我可以在视图中绘制资源位图,使其占据整个屏幕?

您不能在布局XML文件中完成所有操作吗?(以下是我用于菜单背景图像的示例)



然后,如果您需要在运行时更改它,您所要做的就是更改可绘制的图形。

如果您将其标记为“Android”,可能会对您有所帮助,但我不会使用fitXY,除非它只是一个渐变或纵横比无关紧要的东西(即使这样,我也可能不会这样做)。如果您希望按比例缩放以填充屏幕,请使用centerCrop。很好的提示!我不知道那件事。
<ImageView android:id="@+id/menuBackground"
        android:src="@drawable/imageResource"
        android:adjustViewBounds="true"
        android:gravity="center_vertical"
        android:scaleType="fitXY"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_x="0dp" 
        android:layout_y="0dp" />