集成百度离线地图过程

现存问题:
一个activity中包含多个fragment,其中一个fragment里面放了mapView,来回切换fragment
一、切换地图所在的fragment黑屏。MapView换成TextureMapView,黑屏没了(其实是换成了白屏)
二、切换应用重启:http://blog.csdn.net/easyer2012/article/details/47316419
三、切换不显示百度地图中的街道、建筑物名称、地铁点:http://blog.csdn.net/easyer2012/article/details/47316419
导入百度地图库和jar包时注意:
1、jar包的位置放在 project/libs下,so库文件放在src/main/jniLibs文件夹下,选中jar,右键as library
2、或者jar,和so库都放在libs下,然后在module中的build.gradle文件夹里,android{}结构里加入

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.jiaxun.mbmap"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main() {
            jniLibs.srcDirs = ['libs']//加入这个
        }
    }
}
View child = mMapView.getChildAt(1);
        if (child != null && (child instanceof ImageView || child instanceof ZoomControls))
        {
            //child.setVisibility(View.INVISIBLE);
        }
        //不显示百度地图Logo
        mMapView.removeViewAt(1);
        //地图上比例尺
        //mMapView.showScaleControl(false);
        // 隐藏缩放控件
        //mMapView.showZoomControls(false);

自定义百度地图中的marker图标:将自定义布局转换为一个Bitmap
View markView = LayoutInflater.from(getActivity()).inflate(R.layout.mark_view, null);
布局文件 mark_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:gravity="center_vertical"
    android:orientation="vertical">
    <TextView
        android:id="@+id/camera_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:textColor="@color/top_title_bg_color"
        android:textSize="15sp"/>
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:scaleType="centerCrop"
        android:src="@drawable/icon_mark"/>
</LinearLayout>
private Bitmap getBitmapFromView(String num, View view)
    {//将一个view的对象转换成一个bitmap形的对象。
        TextView textView = view.findViewById(R.id.mark_num);
        textView.setText(num);
        ImageView imageView = view.findViewById(R.id.mark_img);
        imageView.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.icon_mark));
        view.destroyDrawingCache();
        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.UNSPECIFIED);
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        view.setDrawingCacheEnabled(true);
        Bitmap bitmap = view.getDrawingCache();
        return bitmap;
    }
private Bitmap getViewBitmap(String num, View markView)
    {
        markView.destroyDrawingCache();
        TextView textView = markView.findViewById(R.id.mark_num);
        textView.setText(num);
        ImageView imageView = markView.findViewById(R.id.mark_img);
        textView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.top_title_bg_color));
        imageView.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.icon_mark));
        markView.setDrawingCacheEnabled(true);
        markView.measure(
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        markView.layout(0, 0,
                markView.getMeasuredWidth(),
                markView.getMeasuredHeight());
        markView.buildDrawingCache();
        Bitmap cacheBitmap = markView.getDrawingCache();
        Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);
        return bitmap;
    }

MarkerOptions option = new MarkerOptions().icon(BitmapDescriptorFactory
.fromBitmap(getViewBitmap(number, markView))).position(ptCenter);

http://map.baidu.com/zt/faq/

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/offlinemap

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/offlinemap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值