我正面临着一个关于这个问题的奇怪行为。以编程方式调整视图大小取决于Android版本?
我有一个非常简单的布局,只包含一个空的RelativeLayout。
一旦我输入了用户名,这个相对布局就会用方形瓷砖填充以实现马赛克效果。每个贴图都由一个包含两个图像的FrameLayout构成(在任何给定时间只绘制一个图像)。我不可能把这些图块放在XML布局中,因为我事先并不知道他们会需要多少图块。
在onSizeChanged我的相对布局,我强制调整大小的所有瓷砖,以适应新的大小。
的代码是这样的:
public void resizeTiles(int w, int h) {
int l1 = w/X; int l2 = h/Y;
int tileS = (l1 <= l2 ? l1 : l2);
android.view.ViewGroup.LayoutParams lp;
for (Tile t : myTiles) {
lp = t.getLayoutParams();
lp.width = tileS;
lp.height = tileS;
}
}
在我的清单文件我有以下几点:
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="4"
/>
因此,目标系统是1.6。
到目前为止好,这是像一个魅力......但只在2.2。
放置在仿真器2.1-update1或之前的相同二进制文件给我回空布局(我也尝试了几个物理设备,结果相同)。
调试,我跟踪了问题是在调整大小;评论宽度和高度分配我看到瓷砖但扭曲的比例。
任何有关如何使这项工作的建议?
在此先感谢。