我试图调整我的MapView的时候用户点击某个按钮(即 - 从mapview四分之一的屏幕大小到全屏幕大小),但我不知道如何去做吧!我试过mMapView.setLayoutParams(new MapView.LayoutParams(250, 250, 0, 0, 6));
但这只会给我错误(ClassCastException)。调整实际的MapView - 不是在地图视图中的内容
我想不出其他任何东西(搜索没有提出太多)。
我试图调整我的MapView的时候用户点击某个按钮(即 - 从mapview四分之一的屏幕大小到全屏幕大小),但我不知道如何去做吧!我试过mMapView.setLayoutParams(new MapView.LayoutParams(250, 250, 0, 0, 6));
但这只会给我错误(ClassCastException)。调整实际的MapView - 不是在地图视图中的内容
我想不出其他任何东西(搜索没有提出太多)。
试试这个:
MapView map = new MapView(this, "");
map.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
map.setLayoutParams(new ViewGroup.LayoutParams(200, 200));
顺便说作为一般规则,从来没有使用绝对定位(250个像素)做Android中任何东西 - 在不同设备上使用时,它会导致问题。使用相对布局,或至少与设备无关的像素(dip)。因此,例如,您可以将layout_width设置为wrap_content,将MapView的layout_weight设置为1(这样可以填充可用空间),然后将另一个UI元素放在其边上,占据一些空间,然后地图将会然后减小尺寸。
仍然得到相同的错误(http://pastebin.com/kynGFjCB) – IamAlexAlright 2012-03-03 21:44:11
我刚刚创建了一个测试项目,它对我来说工作正常,所以你明显在做其他事情。我已更新我的示例以向您显示适合我的具体内容。 – 2012-03-03 21:52:05
如果您仍有问题,我会将您正在使用的语句分开,在一行中创建LayaoutParams,并将其应用于另一行。 – 2012-03-03 21:54:20
我看到setLayoutParams的参数是一个View而不是MapView。也许这就是你的ClassCastException的原因。 – mozillanerd 2012-03-03 21:42:27
@mozillanerd这不是一个视图。这是一个LayoutParams对象。 – 2012-03-03 21:53:54