- 浏览: 161621 次
- 性别:
- 来自: 上海 苏州
最新评论
-
di1984HIT:
血的不错啊,
用HTTP GET调用web service(Java、Groovy两个版本) -
zxw13651485:
学习了!!!
使用基站、wifi实现定位 -
yanruxu801314:
不错,楼主确实有才,可我很奇怪的是,这个app现在还有更新么, ...
豆瓣同城的客户端---豆邻1.0 -
chen052210123:
每次都睡5秒,是不是不太好啊
在线升级Android应用程序完善版 -
zmwell:
楼主啊,我用你上面的程序进行定位,我在西安,却定位到了北京,这 ...
使用基站、wifi实现定位
转载请注明出处
在sina微博上看到街旁网的客户端有一个分享足迹的功能,它可以显示我当前的位置,将微博头像标识在地图上作为我的当前位置,我觉得这个功能很酷,我也想在自己的app上加上这个功能。
由此开始了如下的研究:)
首先将头像标识在地图上很简单,问题的关键是作为android客户端我们需要将图片上传到sina微博,那就需要对当前地图进行截屏,将图片保存在sd卡上。这个是个难题,在我研究的时候android2.3.3版本还没出现,这个版本据说开放了截图功能,可以使用SurfaceFlinger API 截取到屏幕画面。
我尝试了很多办法都解决不了,最后想到了使用webview
布局如下:
我们使用了webview就需要使用网页形式的地图,这个也可以有很多种选择,比如google的api,在这里我尝试使用mapabc的api,因为我看到街旁也是用这个:)
其中这里的key需要自己申请。
需要将这个html文件放在assets文件夹中,取名为map.html
最后,我们需要一个activiy:
其中的x、y是经纬度可以通过定位的方式获取,imageUrl是sina微博的头像地址。
点击确定按钮即可截图 把图片存放到sd卡上。接下来就可以通过获取sd卡上图片的路径将图片上传到微博。
顺便做个广告,此功能在时客地图1.7中已经实现,具体可查看我另外的帖子:http://fengzhizi715.iteye.com/blog/938997
在sina微博上看到街旁网的客户端有一个分享足迹的功能,它可以显示我当前的位置,将微博头像标识在地图上作为我的当前位置,我觉得这个功能很酷,我也想在自己的app上加上这个功能。
由此开始了如下的研究:)
首先将头像标识在地图上很简单,问题的关键是作为android客户端我们需要将图片上传到sina微博,那就需要对当前地图进行截屏,将图片保存在sd卡上。这个是个难题,在我研究的时候android2.3.3版本还没出现,这个版本据说开放了截图功能,可以使用SurfaceFlinger API 截取到屏幕画面。
我尝试了很多办法都解决不了,最后想到了使用webview
布局如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="380px"> <WebView android:id="@+id/webview" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="380px"> <Button android:layout_width="100px" android:layout_marginLeft="30px" android:layout_height="wrap_content" android:text="确定" android:id="@+id/Btn" /> <Button android:layout_width="100px" android:layout_marginLeft="60px" android:layout_height="wrap_content" android:text="取消" android:id="@+id/cancleBtn" /> </LinearLayout> </LinearLayout>
我们使用了webview就需要使用网页形式的地图,这个也可以有很多种选择,比如google的api,在这里我尝试使用mapabc的api,因为我看到街旁也是用这个:)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://app.mapabc.com/apis?&t=ajaxmap&v=2.1.2&key=xxxxxxxxxxx"></script> <script type="text/javascript"> var mapObj=null; function mapInit(x,y,imageUrl) { var mapOptions = new MMapOptions();//构建地图辅助类 mapOptions.zoom=17;//要加载的地图的缩放级别 mapOptions.center=new MLngLat(x,y);//要加载的地图的中心点经纬度坐标 mapOptions.toolbarPos = new MPoint(15,15); //设置工具条在地图上的显示位置 mapOptions.overviewMap = HIDE; //设置鹰眼地图的状态,SHOW:显示,HIDE:隐藏(默认) mapOptions.scale = HIDE; //设置地图初始化比例尺状态,SHOW:显示(默认),HIDE:隐藏。 mapOptions.returnCoordType = COORD_TYPE_OFFSET;//返回数字坐标 mapOptions.zoomBox = true;//鼠标滚轮缩放和双击放大时是否有红框动画效果。 mapObj=new MMap("map",mapOptions); //地图初始化 addMarkerOnMap(x,y,imageUrl); } function addMarkerOnMap(x,y,imageUrl){ var markerOption=new MMarkerOptions(); markerOption.imageUrl=imageUrl; markerOption.picAgent=false; var Marker = new MMarker(new MLngLat(x,y),markerOption); Marker.id="mark"; mapObj.addOverlay(Marker,true); } </script> </head> <body> <div id="map" style="width:360px; height:450px"></div> </body> </html>
其中这里的key需要自己申请。
需要将这个html文件放在assets文件夹中,取名为map.html
最后,我们需要一个activiy:
import java.io.FileOutputStream; import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Picture; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.Toast; public class Main extends Activity { private ProgressDialog progressBar; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.Btn); final WebView wv = (WebView) findViewById(R.id.webview); progressBar = ProgressDialog.show(Main.this, "请稍候", "网页加载中..."); final String x = "116.397428"; final String y = "39.90923"; final String imageUrl = "http://tp4.sinaimg.cn/1916957395/50/1297582748/1"; // 覆盖默认后退按钮的作用,替换成WebView里的查看历史页面 wv.setOnKeyListener(new View.OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) { wv.goBack(); return true; } } return false; } }); wv.getSettings().setJavaScriptEnabled(true); wv.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { if (progressBar.isShowing()) { progressBar.dismiss(); } wv.loadUrl("javascript:mapInit('" + x + "','" + y + "','" + imageUrl + "')"); } }); wv.loadUrl("file:///android_asset/map.html"); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Picture pic = wv.capturePicture(); int width = pic.getWidth(); int height = pic.getHeight(); if (width > 0 && height > 0) { Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bmp); pic.draw(canvas); try { String fileName = "/sdcard/" + System.currentTimeMillis() + ".jpg"; FileOutputStream fos = new FileOutputStream(fileName); if (fos != null) { bmp.compress(Bitmap.CompressFormat.JPEG, 90, fos); fos.close(); } Toast.makeText(getApplicationContext(), "截图成功,文件名是:" + fileName, Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } } }); } }
其中的x、y是经纬度可以通过定位的方式获取,imageUrl是sina微博的头像地址。
点击确定按钮即可截图 把图片存放到sd卡上。接下来就可以通过获取sd卡上图片的路径将图片上传到微博。
顺便做个广告,此功能在时客地图1.7中已经实现,具体可查看我另外的帖子:http://fengzhizi715.iteye.com/blog/938997
发表评论
-
豆瓣同城的客户端---豆邻1.0
2011-04-01 15:23 2106豆邻是豆瓣同城的android客户端。具有豆瓣同城的功 ... -
【原创】时客地图1.7
2011-03-03 00:23 1782时客地图是一款android上的app,目前的最新版本是1.7 ... -
【原创】时客地图1.6
2011-02-12 12:07 1235时客地图是一款android上的app,目前的最新版本是1.6 ... -
【原创】时客地图1.5
2011-01-28 13:18 1240时客地图是一款android上的app,目前的最新版本是1.5 ... -
使用基站、wifi实现定位
2010-11-26 17:28 17058转载请注明出处 android可以借助于gps ... -
关于自适应屏幕方向和大小的一些经验
2010-11-10 13:57 5034转载请注明出处 刚开始,我开发时选取的模拟 ... -
Android隐性Intent的例子
2010-11-02 17:38 7931转载请注明出处 Android的Intent分为两大 ... -
Android 线程超时的例子
2010-11-02 15:09 9333转载请注明出处 android的线程和java的线程是 ... -
在线升级Android应用程序完善版
2010-10-29 16:07 14467转载请注明出处 发一个完善版本的 思路还是原来的思路,上一篇 ... -
在线升级Android应用程序的思路
2010-10-24 23:53 4008转载请注明出处 如果某个app有内嵌的s ... -
通过地名获得经纬度并标识在地图上
2010-10-19 17:30 6067转载请注明出处 主要是调用Geocoder的getFromL ... -
分享一款android的日历组件
2010-10-17 15:28 3875转载请注明出处 这个日历组 ... -
多个Activity跳转的小结
2010-10-17 15:03 21687转载请注明出处 在android开发中Activity相当于 ... -
时客1.4
2010-07-03 12:58 1217增加公交线路的详细信息: 1)公交线路的查询 2)公交站点途径 ... -
时客1.3
2010-06-15 22:36 1019在1.2版本中增加了地铁的查询功能,在1.3版本中新增了查询打 ... -
刚做的2款应用
2010-06-08 00:05 1187由于刚升级了android的固件到2.1,因此我也将我 ... -
比价器0.1版本
2010-06-01 23:23 1390做了一个比较当当 卓越 china-pub 图书的价格 ... -
时客1.0beta发布
2010-02-28 15:06 1019时客,可以查询火车班次、飞机航班 我在G2上 ... -
做了一个可以查询飞机航班、火车班次的小应用
2010-02-14 15:01 3537做得很粗糙,代码量也很少,数据通过调用web service得 ...
相关推荐
本教程将深入探讨如何使用Servlet实现一个历史记录功能,即浏览记录,让用户能够查看他们之前访问过的页面。 首先,理解Servlet的基本概念是至关重要的。Servlet是一个Java类,遵循Java Servlet API规范,它可以...
碳足迹计算器是一种在线工具,用于量化个人或组织在日常生活中所产生的温室气体排放量,主要针对二氧化碳(CO2)的排放。这个概念源自于环境保护和气候变化领域,旨在提高人们对自身活动对全球气候影响的认识。世界...
为此,本文将介绍一种利用Python编程语言及其相关库实现更为精细到市级别的个人足迹地图绘制方法。 #### 二、所需工具与库 在正式开始之前,确保您的开发环境已经安装了必要的Python库: 1. **echarts-china-...
《碳足迹核算认证服务合同》是企业在追求可持续发展和绿色经济道路上的重要法律文件,它规范了委托方(甲方)和认证方(乙方)在碳足迹核算与认证过程中的权利、义务和责任。以下是对这份合同中涉及的关键知识点的...
《VB实现碳足迹计算器详解》 在当今社会,环保意识日益增强,碳足迹计算器成为衡量个人或组织对环境影响的重要工具。"碳足迹计算器-VB制作"项目正是基于这一理念,将2006版和2008版的碳足迹计算器进行了整合,并...
该指南旨在规定电子信息产品碳足迹核算的目标、核算范围、功能单位、系统边界、数据收集与处理、核算、报告等内容。 一、前言 电子信息产品碳足迹核算指南是根据GB/T 1.1—2020《标准化工作导则 第1部分:标准化...
这款软件的主要功能是利用淘宝足迹这一高流量入口,通过批量推送广告的方式,将商家的商品信息推送给大量的潜在买家。它无需使用旺旺小号,意味着在推广过程中可以避免因频繁更换账号而可能产生的风险,简化了操作...
这个压缩包可能是为了方便开发者下载和研究这个旅游足迹分享小程序的实现细节。 【标签】“微信小程序”指出了这个项目是针对微信生态系统的,小程序是一种轻量级的应用形式,无需下载安装即可使用,它介于传统App...
本示例将重点讲解如何利用会话技术(Session)来实现这些功能。会话技术是Web开发中的一个重要概念,它允许服务器在多个HTTP请求之间保持用户的状态,这对于状态无连接的HTTP协议来说是至关重要的。 首先,让我们...
英国碳足迹标准的核心内容和应用方法在文档提供的信息中得到了详细描述。下面,我们将根据提供的信息详细阐述英国碳足迹标准相关的知识点。 首先,碳足迹是指在商品和服务的生命周期中所产生的温室气体排放的总量...
【生态足迹分析法】是一种衡量可持续发展程度的量化工具,由E.R.William和M.Wackernagel在20世纪90年代提出。它通过计算一个地区消耗的生物生产性土地面积来评估该地区的资源利用是否在生态承载力范围内,从而判断其...
利用IPCC公布的《国家温室气体排放清单指南》中碳排放的计算方法,定量研究2000—2011年中国能源消费的碳足迹数值,并针对近年碳足迹呈现的变化趋势,详细分析能源消费的碳足迹构成、人均碳足迹、碳足迹强度以及碳足迹...
青海省产业生态足迹和生态效率分析的知识点主要包括以下几个方面: 1. 生态足迹方法:生态足迹是一个衡量...同时,其他地区也可以借鉴青海省的研究经验,采用类似的方法对自身的生态足迹和生态效率进行评估和优化。
根据给出的文件信息,本文将对大连金港区生态足迹预测分析的知识点进行详细阐述,具体包括以下内容: 一、生态足迹理论与模型 生态足迹理论最早由加拿大教授William E. Rees及其博士生Mathis Wackernagel提出并完善...
Java 碳足迹计算器是一款基于Java开发的桌面应用程序,它为用户提供了一种便捷的方式来计算个人或组织的碳排放量,从而帮助人们了解自己的环境影响并采取减排措施。这个项目不仅包含了一个运行时的可执行程序,还...
通过《2019粤港澳大湾区生态足迹报告》,我们可以全面了解大湾区的生态环境状况,认识到环境保护的重要性,以及采取何种措施实现可持续发展的必要性。这份报告不仅是对大湾区的生态评估,也为其他类似地区提供了可...
在IT行业中,轨迹划线和足迹跟踪是地理信息系统(GIS)和移动应用开发中的关键功能。这个"珍藏版 轨迹划线 百度足迹跟踪 轨迹定位"资源很可能是一个针对百度地图API的开发包或者教程,帮助开发者实现用户轨迹的记录...
中国中小企业碳足迹核算Excel自动计算表(碳足迹核算:中国中小企业(SME)碳报告工具)