zoukankan      html  css  js  c++  java
  • 泡泡图层PopupOverlay的使用

    1、

    private PopupOverlay   pop  = null;
    /**
              * pop弹窗事件监控接口
              */
             PopupClickListener popListener = new PopupClickListener(){
                @Override
                public void onClickedPopup(int index) {
                    //index - 当前点击的区域索引。
                    if ( index == 0){
                        //更新item位置
                          pop.hidePop();
                          GeoPoint p = new GeoPoint(mCurItem.getPoint().getLatitudeE6()+5000,
                                  mCurItem.getPoint().getLongitudeE6()+5000);
                          mCurItem.setGeoPoint(p);
                          mOverlay.updateItem(mCurItem);
                          mMapView.refresh();
                    }
                    else if(index == 2){
                        //更新图标
                        mCurItem.setMarker(getResources().getDrawable(R.drawable.nav_turn_via_1));
                        mOverlay.updateItem(mCurItem);
                        mMapView.refresh();
                    }
                }
             };
             //PopupOverlay构造器
             pop = new PopupOverlay(mMapView,popListener);

    2、显示

    pop.showPopup(View view, GeoPoint point, int yOffset); //view:自定义 View //point:弹窗的位置(锚点在窗口的中下方向。水平方向:Center;垂直方向:Bottom) //yOffset:弹窗在y轴上的偏移量,取值范围yOffset>=0。单位:像素 

     xml

    <?xml version="1.0" encoding="utf-8"?>
    
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            >
            
        <TextView
            android:id="@+id/popleft"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/popup_side"
             android:gravity="center"
            android:textStyle="bold"
             android:textColor="#3814ed"
            android:text="交通顺畅"
            android:textSize="12sp" />
    
       
         <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:id="@+id/popinfo"
            >
            
        <TextView
            android:id="@+id/textcache"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/popup_middle"
            android:gravity="center"
            android:textStyle="bold"
            android:textColor="@android:color/black"
            android:textSize="12sp" />
        
         <TextView
            android:id="@+id/popdown"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/popup_down"
            android:textColor="@android:color/black"
            android:textSize="12sp" />
        
        
        </LinearLayout>
    
         
        <TextView
            android:id="@+id/popright"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/popup_side"
            android:textColor="#3814ed"
            android:gravity="center"
            android:textStyle="bold"
            android:text="指点路况"
            android:textSize="12sp" />
    
    </LinearLayout>

    构造view

        private View viewCache;
    
    
    
            /**
             * 向地图添加自定义View.
             */
            viewCache = getLayoutInflater()
                    .inflate(R.layout.custom_text_view, null);
            popupInfo = (View) viewCache.findViewById(R.id.popinfo);
            popupLeft = (View) viewCache.findViewById(R.id.popleft);
            popupRight = (View) viewCache.findViewById(R.id.popright);
            popupText = (TextView) viewCache.findViewById(R.id.textcache);
    
                    popupText.setText("南湖大道");
                    Bitmap[] bitMaps = { BMapUtil.getBitmapFromView(popupLeft),
                            BMapUtil.getBitmapFromView(popupInfo),
                            BMapUtil.getBitmapFromView(popupRight) };
                    pop.showPopup(bitMaps, geoPoint, 32);

    3、

            //收起pop弹窗
            if (pop != null){
                pop.hidePop();
            }

    4、从view生成bitmap

    public class BMapUtil {
            
        /**
         * 从view 得到图片
         * @param view
         * @return
         */
        public static Bitmap getBitmapFromView(View view) {
            view.destroyDrawingCache();
            view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                    View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
            view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
            view.setDrawingCacheEnabled(true);
            Bitmap bitmap = view.getDrawingCache(true);
            return bitmap;
        }
    }

    Done!

  • 相关阅读:
    【洛谷P3804】【模板】后缀自动机 (SAM)
    【洛谷P3321】序列统计
    【洛谷P4929】【模板】舞蹈链(DLX)
    【洛谷P3703】树点涂色
    Kubernets二进制安装(5)之私有仓库harbor搭建
    忘记Mysql的root用户密码处理方法(以mysql 5.5.33为例)
    编译安装MySQL 5.5.33
    Kubernets二进制安装(4)之Docker安装
    Kubernets二进制安装(3)之准备签发证书环境
    Kubernets二进制安装(2)之Bind9安装
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3621264.html
Copyright © 2011-2022 走看看