地图与XML解析
地图与XML解析
- 地图依赖
- 地图依赖
- 地图布局
- 地图主类
- Xml解析代码
- 效果图
地图依赖
地图依赖
implementation ‘com.amap.api:location:4.2.0’
implementation’com.amap.api:map2d:5.2.0’
地图布局
地图主类
public class MainActivity extends AppCompatActivity implements AMapLocationListener {
private MapView mapView;
private AMap aMap;
private AMapLocationClient client;//负责定位
private AMapLocationClientOption clientOption;
Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);client.stopLocation();}
};
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mapView= findViewById(R.id.map);mapView.onCreate(savedInstanceState);//必须要写initMap();
}private void initMap() {aMap=mapView.getMap();//获得地图对象aMap.setMapType(AMap.MAP_TYPE_SATELLITE);//地图切换(普通,卫星)client = new AMapLocationClient(this);client.setLocationListener(this);//给定位加监听clientOption = new AMapLocationClientOption();clientOption.setInterval(1000);//每隔1000去定位一次clientOption.setNeedAddress(true);//是否显示地址clientOption.setMockEnable(true);//是否显示模拟定位clientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//高精度地位client.setLocationOption(clientOption);client.startLocation();//启动定位
// client.stopLocation();//关闭定位handler.sendEmptyMessageDelayed(0,5000);//延长发送}/*** 定位发生改变。要获得当前的位置* @param aMapLocation*/
@Override
public void onLocationChanged(AMapLocation aMapLocation) {if (aMapLocation.getErrorCode()==0) {double lat = aMapLocation.getLatitude();//纬度double lon = aMapLocation.getLongitude();//经度LatLng latLng = new LatLng(lat, lon);//坐标对象aMap.clear();MarkerOptions options = new MarkerOptions();//小红点,定位标记options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));options.position(latLng);//图标要显示的位置options.draggable(true);aMap.addMarker(options);//给地图添加标记CameraUpdate update = CameraUpdateFactory.changeLatLng(latLng);//更新定位区域aMap.moveCamera(update);//显示到定位区域}else{//定位失败}
}@Override//界面没有交点但可见
protected void onDestroy() {super.onDestroy();mapView.onDestroy();
}@Override//界面
protected void onResume() {super.onResume();mapView.onResume();
}@Override
protected void onPause() {super.onPause();mapView.onPause();
}
}
效果
Xml解析代码
xml
冰与火之歌 乔治马丁 2014 89 安徒生童话 安徒生 2004 77
Document简析
/*** 简析为了获得,对象,集合* xml:标记语言,用来做网络传输*/
public class MainActivity extends AppCompatActivity {List list = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dom();}private void dom() {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//获得工厂try {DocumentBuilder builder = factory.newDocumentBuilder();//创建builder对象Log.e("###","###1");InputStream inputStream = getAssets().open("book.xml");Log.e("###","###2");Document document = builder.parse(inputStream);//把文件添加到内存中NodeList nodeList = document.getElementsByTagName("book");//获取文件中所有节点名为book的内容,并打算将这些内容存入到nodeList中//由于有好多个book节点,所以我们要对nodelist做遍历for (int i=0;i
效果图
[BookBean{id=‘1’, name=‘冰与火之歌’, author=‘乔治马丁’, year=‘2014’, price=‘89’}, BookBean{id=‘2’, name=‘安徒生童话’, author=‘安徒生’, year=‘2004’, price=‘77’}]
pull解析代码
public class Main2Activity extends AppCompatActivity {List list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);try {XmlPullParserFactory factory = XmlPullParserFactory.newInstance();XmlPullParser parser = factory.newPullParser();InputStream open = getAssets().open("book.xml");parser.setInput(open,"utf_8");int eventType = parser.getEventType();BookBean bookBean=null;while (eventType!=XmlPullParser.END_DOCUMENT){switch (eventType){case XmlPullParser.START_TAG:if (parser.getName().equals("book")){bookBean = new BookBean();String attributeValue = parser.getAttributeValue(0);bookBean.setId(attributeValue);}else if (parser.getName().equals("name")){bookBean.setName(parser.nextText());}else if (parser.getName().equals("author")){bookBean.setAuthor(parser.nextText());}else if (parser.getName().equals("year")){bookBean.setYear(parser.nextText());}else if (parser.getName().equals("price")){bookBean.setPrice(parser.nextText());}break;case XmlPullParser.END_TAG:if (parser.getName().equals("book")){list.add(bookBean);}break;}eventType = parser.next();}} catch (Exception e) {e.printStackTrace();}Log.e("####",list+"");
}
}
效果图
[BookBean{id=‘1’, name=‘冰与火之歌’, author=‘乔治马丁’, year=‘2014’, price=‘89’}, BookBean{id=‘2’, name=‘安徒生童话’, author=‘安徒生’, year=‘2004’, price=‘77’}]
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
