不是很明白allowBackup的方法 查询一下
Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中AndroidManifest.xml文件中的allowBackup属性值[1] ,其属性值默认是true。当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。
本文来自 iRuoBin 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_31387043/article/details/51452782?utm_source=copy
开发百度地图自然不用多说,需要申请很多的权限!!
要完成百度地图的开发自然需要大量的这些百度提供的文件了,不多说
这些文件属于json类型,比xml的文件类型所占用的空间还小,很适合互联网之间信息的传输。
以上是百度百科的解释。
接下来谈谈关于Java中使用log而不使用System.out.println(),
快捷键 在方法里面输入logd 然后按下tab键
然后在方法外面输入 logt +tab键
效果如图所示。。。
public class MainActivity extends Activity
{
private MapView mMapView = null;
private BaiduMap mBaiduMap;
private BitmapDescriptor bitMapN = null;
private int num_Index=1;//气球计数器
private int presentIndex = -1;//当前marker索引
private List<LatLng> LatLnglist = new ArrayList<LatLng>();//坐标集合
private int yoffset=0; //偏移量
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
//获取地图对象引用
mBaiduMap = mMapView.getMap();
//设置地图缩放比
float mZoomLevel = 16.0f;
mBaiduMap.setMapStatus(MapStatusUpdateFactory.zoomTo(mZoomLevel));
//加载地图中心点默认为北京天安门
mBaiduMap.setMapStatus
(
MapStatusUpdateFactory.newLatLng( new LatLng(39.91635753159,116.40385626888427))
);
//加载marker图片
bitMapN = BitmapDescriptorFactory.fromResource(R.drawable.point_n);
//添加地图单击事件监听
mBaiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener()
{
//点击地图事件回调方法
@Override
public void onMapClick(LatLng point)
{
SetMaker(point);//添加气球
LatLnglist.add(point); //把当前位置信息添加到LatLnglist集合中
}
//点击POI(地理兴趣点)事件回调方法
@Override
public boolean onMapPoiClick(MapPoi arg0)
{
return false;
}
});
//地图marker点击事件监听
mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener()
{//添加气球监听
@Override
public boolean onMarkerClick(Marker marker)
{
presentIndex = Integer.parseInt(marker.getTitle()) - 1;//设置当前marker索引
ShowWindow(LatLnglist.get(presentIndex));//显示自定义窗口
mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(LatLnglist
.get(presentIndex)));//将地图中心点移到当前marker位置
return true;
}
});
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//设置地图模式
}
public void SetMaker(LatLng point)
{
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions mOverlay = new MarkerOptions()//创建MarkerOptions对象
.position(point) //设置当前MarkerOptions对象的经纬度
.icon(bitMapN)//设置当前MarkerOptions对象的自定义图标
.perspective(true)//设置为近大远小效果
.title(num_Index+"");//设置Marker 的标题
mBaiduMap.addOverlay(mOverlay); //在地图上添加Marker,并显示
num_Index++;//计数器自加
}
public void ShowWindow(LatLng point)
{
LayoutInflater mInflater = LayoutInflater
.from(MainActivity.this);//加入窗口布局
LinearLayout ll = (LinearLayout) mInflater.inflate(
R.layout.view_map_popup, null);//获取窗口 LinerLayout
TextView Info = (TextView) ll.findViewById(R.id.popInfo);//获取引用
Info.setText("经度为:"+point.longitude+""+"\n"+"纬度为:"+point.latitude);
InfoWindow infoWindow=new InfoWindow(ll,point,yoffset);//初始化通知窗口
Info.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mBaiduMap.hideInfoWindow();
}
}
); //对通知窗口添加监听
mBaiduMap.showInfoWindow(infoWindow); //地图上显示通知窗口
}
@Override
protected void onDestroy()
{
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume()
{
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause()
{
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
Log.d(TAG, "onPause: ");
}
private static final String TAG = "MainActivity";
以上是整个地图的Mainactivity 代码
下面逐步分析
先声明对象 MapView BaiduMap BitmapDescriptor
分别是地图控件 地图引用 比特图描述符
这一段不难理解 主要是注意SDK各组件的初始化
给比特图描述符加载图片 (气泡)
添加地图单击事件方法
SetMaker方法
OverlayOptions 对象的使用方法
以及在地图上添加的气泡的方法 addOverlay 参数为OverlayOptions 对象
public void SetMaker(LatLng point)
{
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions mOverlay = new MarkerOptions()//创建MarkerOptions对象
.position(point) //设置当前MarkerOptions对象的经纬度
.icon(bitMapN)//设置当前MarkerOptions对象的自定义图标
.perspective(true)//设置为近大远小效果
.title(num_Index+"");//设置Marker 的标题
mBaiduMap.addOverlay(mOverlay); //在地图上添加Marker,并显示
num_Index++;//计数器自加
}
气泡点击的监听
自定义窗口 当点击气泡的时候弹出一个自定义的窗口
然后在点击该窗口 窗口隐藏