2012-03-03 17 views
0

我试图调整我的MapView的时候用户点击某个按钮(即 - 从mapview四分之一的屏幕大小到全屏幕大小),但我不知道如何去做吧!我试过mMapView.setLayoutParams(new MapView.LayoutParams(250, 250, 0, 0, 6));但这只会给我错误(ClassCastException)。调整实际的MapView - 不是在地图视图中的内容

我想不出其他任何东西(搜索没有提出太多)。

+0

我看到setLayoutParams的参数是一个View而不是MapView。也许这就是你的ClassCastException的原因。 – mozillanerd 2012-03-03 21:42:27

+0

@mozillanerd这不是一个视图。这是一个LayoutParams对象。 – 2012-03-03 21:53:54

回答

0

试试这个:

 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元素放在其边上,占据一些空间,然后地图将会然后减小尺寸。

+0

仍然得到相同的错误(http://pastebin.com/kynGFjCB) – IamAlexAlright 2012-03-03 21:44:11

+0

我刚刚创建了一个测试项目,它对我来说工作正常,所以你明显在做其他事情。我已更新我的示例以向您显示适合我的具体内容。 – 2012-03-03 21:52:05

+0

如果您仍有问题,我会将您正在使用的语句分开,在一行中创建LayaoutParams,并将其应用于另一行。 – 2012-03-03 21:54:20

相关问题