且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Android GIS开发系列-- 入门季(11) Callout气泡的显示

更新时间:2022-09-16 07:57:18

一、气泡的简单显示

首先我们要获取MapView中的气泡,通过MapView的getCallout()方法获取一个气泡。看一下Callout的简单介绍: 
Android GIS开发系列-- 入门季(11) Callout气泡的显示 
大体的意思是通过MapView获取Callout,可以设置它的内容View,大小,显示的方位等。 
写一个简单的测试:

Android GIS开发系列-- 入门季(11) Callout气泡的显示
public class MainActivity extends Activity {

    private MapView mapView;
    private static final String TILED_WORLD_STREETS_URL = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer";
    private Callout callout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mapView = (MapView) findViewById(R.id.map_view);
        //添加一个基础的底图
        mapView.addLayer(new ArcGISTiledMapServiceLayer(TILED_WORLD_STREETS_URL));
        //地图点击事件
        mapView.setOnSingleTapListener(new OnSingleTapListener() {

            @Override
            public void onSingleTap(float x, float y) {
                //屏幕坐标转地图坐标
                Point point = mapView.toMapPoint(x,y);
                //设置显示位置
                callout.show(point);
            }
        });

        initCallout();
    }

    private void initCallout() {
        //获取一个气泡
        callout = mapView.getCallout();
        //设置最大的长宽
        callout.setMaxWidth(1200);
        callout.setMaxHeight(300);
        TextView tv = new TextView(this);
        tv.setText("这是一个气泡");
        callout.setContent(tv);

        CalloutStyle calloutStyle = new CalloutStyle();
        //设置尖尖角的位置,尖尖显示在气泡的左下角,
        calloutStyle.setAnchor(Callout.ANCHOR_POSITION_LOWER_LEFT_CORNER);
        callout.setStyle(calloutStyle);
    }
}
Android GIS开发系列-- 入门季(11) Callout气泡的显示

 

显示的效果图如下: 
Android GIS开发系列-- 入门季(11) Callout气泡的显示

二、通过xml方式设置Callout的Style

新建一个xml放在res/xml下,例如:

<?xml version="1.0" encoding="utf-8"?>
  <resources>
      <calloutViewStyle
          anchor="5"
          backgroundAlpha="255"
          backgroundColor="#ffffff"
          cornerCurveDp="20"
          frameColor="#000000"
          maxHeightDp="300"
          maxWidthDp="500" />
      </resources>

只需调用callout.setStyle方法来设置。

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的***、好奇、充满创造力的想法被现实的框架所束缚,让创造力***成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



   本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7751976.html,如需转载请自行联系原作者