关闭

Android解决地图在线加载黑屏

标签: 布局android线程地图黑屏
424人阅读 评论(0) 收藏 举报
分类:

黑屏原因是加载地图耗时过长,我们可以把加载地图的方法放到子线程中,执行完毕发送handler消息,再接收做相应的处理。下面是以下几种方式:

private static final int MESSAGETYPE = 0;
private ProgressDialog progressDialog = null;
private Handler handler;
	progressDialog = ProgressDialog.show(this, "", "正在加载,请稍候...");
		new Thread() {
			public void run() {
				try {
					//写加载地图的代码
				} catch (Exception e) {

				}
				handler.sendEmptyMessage(MESSAGETYPE);
			}
		}.start();

		handler = new Handler() {
			public void handleMessage(Message message) {
				switch (message.what) {
				case MESSAGETYPE:
					progressDialog.dismiss(); // 关闭进度条
					break;
				}
			}
		};
这是用一个进度条来旋转显示,执行完后进度条消失。

private static final int MESSAGETYPE = 0;
private Handler handler;
		new Thread() {
			public void run() {
				try {
					//写加载地图的代码
				} catch (Exception e) {

				}
				handler.sendEmptyMessage(MESSAGETYPE);
			}
		}.start();

		handler = new Handler() {
			public void handleMessage(Message message) {
				switch (message.what) {
				case MESSAGETYPE:
					findViewById(R.id.pd).setVisibility(View.GONE);
					break;
				}
			}
		};
如果需要显示一个旋转界面,可以在当前类的布局里面加一层,如果在加载就显示旋转布局,执行完后控件隐藏。

new Handler().postDelayed(new Runnable() {  
		    @Override  
		    public void run() {  
		    	findViewById(R.id.picyure).setVisibility(View.GONE);
		    }  
		}, 3000); 
		
		new Thread() {
			public void run() {
				try {
					//写加载地图的代码
				} catch (Exception e) {
					
				}
			}
		}.start();

在线加载地图过慢,需要等一段时间,可以设置几秒之后控件就消失进入地图加载界面,也是同样可以的。


0
0
查看评论

MapView首次加载黑屏现象解决办法

首次加载MapView的时候,总是黑屏一下然后再开始显示地图,这样给用户的体验会很差,这时候可以这样做:首先隐藏MapView,然后给MapView设置OnStatusChangedListener来监听MapView的状态,当MapView加载完成后,利用handler延迟0.5秒显示MapVie...
  • oMaNong12
  • oMaNong12
  • 2014-05-14 10:18
  • 1936

android 解决fragment中有百度高德等地图,切换出现闪一下黑屏的问题

切换fragment时不要用replace()方法,这样会重新绘制界面,同时这样即消耗性能和也消耗用户的数据流量。使用hide(),show()方法,完美解决黑屏问题。 贴点关键代码:实例fragment: private BespeakChargeFragment mapFrag...
  • a458339341
  • a458339341
  • 2015-10-24 18:06
  • 2377

ArcGIS Api For Android学习之(二)加载地图

ArcGIS Api For Android 的地图的接入方法和传统的web端的api类似,分为接入切片地图、动态地图和影像地图,其中切片地图分为基于rest的地图服务和本地切片地图。 下面通过一个例子把arcgisonline上世界地图和沈阳地图加载到手机设备上 在eclipse中hello...
  • SYDBC
  • SYDBC
  • 2013-12-05 10:56
  • 2775

应用启动首次进入多视图页面可能出现地图黑屏问题

用户接单并等待计费状态,关闭应用再进入应用自动进入等待结束计费页面,有低概率出现地图加载失败地图为黑色或四方格,进入其它页面后再次进入该页面地图显示正常。由于接单页面图层超多,并且还启动了长连接线程,所以可能接单地图页面在显示时,地图可能没有初始化完毕。 修改方案,对地图的唯一实例在应用启动时就初...
  • jia12216
  • jia12216
  • 2015-10-21 14:31
  • 1168

Android Fragment集成高德地图黑屏的问题解决方案

官方给的3.0Map的集成api说了: MapView 是 Android View 类的一个子类,它可以帮助您在 Android View 中放置地图,它是应用程序和窗口部件的基本构建类。MapView 作为地图的容器,通过 AMap 对象显示地图。使用 MapView 类,必须重载 A...
  • yfloctar
  • yfloctar
  • 2015-12-15 11:25
  • 4795

android开发百度地图黑屏闪退现象解决办法

昨天公司项目有邮件说客运站查询地理位置的时候,地图不能够展示,我安装测试了,发现不仅仅是不展示啊, 黑屏,闪退,我擦,这还得了,赶紧解决。     于是拿代码去debug,发现,(⊙o⊙)…没问题啊,地图加载完好,并没有不展示和闪退、黑屏的bug,这是怎么回事呢??? 现在...
  • yeluofengchui
  • yeluofengchui
  • 2016-04-20 09:39
  • 4669

android 使用百度地图Mapview黑屏状态

同事在使用百度地图时发现MapView 处于黑屏状态,只能看到百度地图的logo 最后发现原来是设置了activity的flags public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt...
  • a1347406492
  • a1347406492
  • 2015-11-11 17:40
  • 2773

Android OSM无法加载地图

Android OSM无法加载地图国内关于OpenStreetMap的文章实在太少了,之前我看到一篇文章,大概是国内唯一一个关于Android OSM使用的教程。地址:Android地图开发之OpenStreetMap基础教程 但是许多人反应地图加载不出来,只显示网格线,我也遇到过此问题,于是花了...
  • PJMaker
  • PJMaker
  • 2016-07-30 21:09
  • 177

如何使用QGIS下载在线地图

如何使用QGIS下载在线地图本文介绍如何使用QGIS来下载在线地图,如高德地图、Google地图等。首先从QGIS官网下载最新版的QGIS安装,然后配置在线地图地址,最后选择区域另存即可。 QGIS下载安装 在线地图配置 地图另存 QGIS下载安装从QGIS官网下载安装最新版的QGIS软件,目前的最...
  • liminlu0314
  • liminlu0314
  • 2017-12-05 09:36
  • 885

[android开发]百度地图截屏黑屏问题解决

大家好,最近在开发中使用了百度地图,具体结构就是一个父activity里面包含一个fragment,mapview嵌套在fragment中,主要是实现截取当前屏幕,分享到第三方平台。 第一次截屏,使用的andorid的函数,mapview部分黑屏。 第二次截屏,使用的 ...
  • gjirong
  • gjirong
  • 2016-03-22 09:48
  • 1807
    个人资料
    • 访问:11860次
    • 积分:363
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:1篇
    • 译文:0篇
    • 评论:15条
    文章分类
    最新评论