如何缩放图像以填充屏幕

时间:2010-11-14 17:19:53

标签: android image-scaling

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

我从我的“Activity”初始化视图,如下所示: BackgroundView bw = new BackgroundView(this);

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

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

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

另一方面,如果我通过观察它的宽度和高度 this.getWidth(); this.getHeight();

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

最后如果我尝试使用视图尺寸除以图像尺寸来创建比例矩阵,屏幕上的结果就是比屏幕小得多的图像......

我的问题是: 我应该问什么问题以及哪些对象在视图中我可以绘制资源Bitmap以便它占据整个屏幕?

1 个答案:

答案 0 :(得分:9)

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

<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" />

然后,如果你需要在运行时更改它,你所要做的就是改变drawable。

相关问题