自2018年10月18日起,高德开发者论坛除车机板块外,其他板块将停止发帖与维护,如您有使用问题请 提交工单 联系我们,感谢您的理解。

查看: 324|回复: 0
打印 上一主题 下一主题

[应用案例] 滑动seekbar,动态改变圆圈大小的问题

[复制链接]
最佳答案
0 

1

主题

1

帖子

11

积分

新手上路

Rank: 1

积分
11
跳转到指定楼层
楼主
发表于 2018-5-24 18:03:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
发表帖子
API/SDK版本号: android6.0
产品: 2D地图
手机型号:
使用接口:
在应用中有个需求,要拉动seekbar, 根据seekbar的刻度,动态改变地图上的圆圈大小。
我在seekba的滑动回调方法中,使用了circle.setRadius(progress)这个方法:

注: 下边出现的对象都在别的地方进行了初始化。

                       @Override
                       
                       public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                       
                                circle.setRadius(progress);                       
                        }


结果:圆圈大小也确实能改变。但是,滑动后要好久好久,才能变化,更别提动态效果了。

看了下api,也没有找到相关的接口。然后我就没办法了,想在这发帖求助。
结果,帖子也没发成,说有非法字符。what a fk. 再次自己干。

看app的表现,诊断是因为修改圆的半径后,地图并不会及时刷新。
于是去找地图中的刷新接口——类似adapter的 notifydatachanged()。可惜——没有。
顺便说一下,编程中最恐怖的情况之一是简单的事情手段用尽却还无济于事的时候。压力。

然后想到,在使用
circleOptions.radius(radius);       
circle = aMap.addCircle(circleOptions);       

这两句初始化圆圈时,可以很快的显示出圆来,想必调用aMap.addCircle(circleOptions);        方法后就会及时刷新。于是尝试:
                       @Override
                        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {               
                                circle.remove();
                                circleOptions.radius(progress);
                                aMap.addCircle(circleOptions);                                                               
                        }

结果:确实能很快刷新了。但是之前的圆却没有消失。而是画了很多圆。
看来是之前的圆没有移除。小失误。

于是很快最终版:
                        @Override
                        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {                       
                                circle.remove();
                                circleOptions.radius(progress);
                                circle = aMap.addCircle(circleOptions);                                                               
                        }


成功!
求助帖发成了分享贴。


前两张是错误类型1的效果。要等好久。
最后一张是错误类型2的效果。很多圆。

       










回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高德开发者论坛

Copyright ©2014 高德开发者论坛.All Rights Reserved |京ICP证070711号

意见反馈 常见问题 服务条款 联系我们
快速回复 返回顶部 返回列表