我的问题是: 我使用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以便它占据整个屏幕?
答案 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。