zoukankan      html  css  js  c++  java
  • Android GIS开发系列-- 入门季(11) Callout气泡的显示

    一、气泡的简单显示

    首先我们要获取MapView中的气泡,通过MapView的getCallout()方法获取一个气泡。看一下Callout的简单介绍:

    大体的意思是通过MapView获取Callout,可以设置它的内容View,大小,显示的方位等。
    写一个简单的测试:

    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);
        }
    }

    显示的效果图如下:

    二、通过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方法来设置。
  • 相关阅读:
    ORM框架-SQLAchemy使用
    python与MySQL
    python 与rabbitmq
    阻止微信浏览器/QQ浏览器长按弹框“在浏览器打开”
    解决ios不支持按钮:active伪类的方法
    HTTP-FLV直播初探
    对比requirejs更好的理解seajs
    ‘true’==true返回false详解
    支付宝wap支付调起客户端
    JavaScript中基本数据类型和引用数据类型的区别
  • 原文地址:https://www.cnblogs.com/arxive/p/7751976.html
Copyright © 2011-2022 走看看