怎么用谷歌地图API实现触碰一点,就在那个点绘制出一个图片(圆圈)?

jcs12311 2012-08-21 01:14:17
比如打开地图后,用户点击一点,然后就在那个点显示出一个图片或者绘制一个圆圈之类的,我用OnTap捕捉了坐标,但是绘制不了。
我顺便问一下:android的canvas一定要在OnDraw(Canvas canvas)这种类似的情况下使用吗,我能使用一个OnTouch(xxx),然后在这个函数里面用canvas吗?
...全文
280 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
franzhong 2012-08-23
  • 打赏
  • 举报
回复
用canvas画上去,把坐标选logCat一下看对不对
CNnumen 2012-08-23
  • 打赏
  • 举报
回复
onTouch里可以通过调用invalidate()函数触发onDraw(), 实现绘制(绘制的参数可以在onTouch()里进行设置)
jgszhuzhu 2012-08-23
  • 打赏
  • 举报
回复
那个不是用j2me的canvas搞的 overlayitem

public class GPS1Activity extends MapActivity {
LocationManager lm;
MapView mv;
Location l;
int lat,lon;
Geocoder coder;
GeoPoint point;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mv = (MapView) findViewById(R.id.mapview);
mv.setBuiltInZoomControls(true);

try {
point = getLocation("深圳地王大厦");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

List<Overlay> mapViewList = mv.getOverlays();
Drawable d = getResources().getDrawable(R.drawable.a);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());

MyOverlayItem myItem = new MyOverlayItem(d);
OverlayItem item = new OverlayItem(point, "", "");
item.setMarker(d);
myItem.additem(item);
mapViewList.add(myItem);

mv.getController().setZoom(16);
mv.getController().animateTo(point);
}

@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}

private GeoPoint getLocation(String str) throws IOException
{
int lat,lon;
coder = new Geocoder(this, Locale.getDefault());
List<Address> list = coder.getFromLocationName(str, 1);
if((list!=null)&&(list.size()>0))
{
Address a = list.get(0);
lat = (int)(a.getLatitude()*1e6);
lon = (int)(a.getLongitude()*1e6);
}
else
{
lat = (int)(22.55*1e6);
lon = (int)(114.1*1e6);
}

return new GeoPoint(lat, lon);
}

class MyOverlayItem extends ItemizedOverlay<OverlayItem>
{
private List<OverlayItem> list = new ArrayList<OverlayItem>();
public MyOverlayItem(Drawable defaultMarker) {
super(defaultMarker);
// TODO Auto-generated constructor stub
}

public void additem(OverlayItem item)
{
list.add(item);
populate();
}

@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return list.get(i);
}

@Override
public int size() {
// TODO Auto-generated method stub
return list.size();
}

}
}
中才德创 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
我顺便问一下:android的canvas一定要在OnDraw(Canvas canvas)这种类似的情况下使用吗,我能使用一个OnTouch(xxx),然后在这个函数里面用canvas吗?
[/Quote]在线程的run方法里就可以啊!

问题在于OnTouch里用它不好吧。
jcs12311 2012-08-21
  • 打赏
  • 举报
回复
可以告诉我具体点的代码·么

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧