- 浏览: 159858 次
- 性别:
- 来自: 上海 苏州
最新评论
-
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 2063豆邻是豆瓣同城的android客户端。具有豆瓣同城的功 ... -
【原创】时客地图1.7
2011-03-03 00:23 1736时客地图是一款android上的app,目前的最新版本是1.7 ... -
【原创】时客地图1.6
2011-02-12 12:07 1193时客地图是一款android上的app,目前的最新版本是1.6 ... -
【原创】时客地图1.5
2011-01-28 13:18 1192时客地图是一款android上的app,目前的最新版本是1.5 ... -
使用基站、wifi实现定位
2010-11-26 17:28 16914转载请注明出处 android可以借助于gps ... -
关于自适应屏幕方向和大小的一些经验
2010-11-10 13:57 4981转载请注明出处 刚开始,我开发时选取的模拟 ... -
Android隐性Intent的例子
2010-11-02 17:38 7889转载请注明出处 Android的Intent分为两大 ... -
Android 线程超时的例子
2010-11-02 15:09 9269转载请注明出处 android的线程和java的线程是 ... -
在线升级Android应用程序完善版
2010-10-29 16:07 14412转载请注明出处 发一个完善版本的 思路还是原来的思路,上一篇 ... -
在线升级Android应用程序的思路
2010-10-24 23:53 3955转载请注明出处 如果某个app有内嵌的s ... -
通过地名获得经纬度并标识在地图上
2010-10-19 17:30 6029转载请注明出处 主要是调用Geocoder的getFromL ... -
分享一款android的日历组件
2010-10-17 15:28 3836转载请注明出处 这个日历组 ... -
多个Activity跳转的小结
2010-10-17 15:03 21646转载请注明出处 在android开发中Activity相当于 ... -
时客1.4
2010-07-03 12:58 1165增加公交线路的详细信息: 1)公交线路的查询 2)公交站点途径 ... -
时客1.3
2010-06-15 22:36 957在1.2版本中增加了地铁的查询功能,在1.3版本中新增了查询打 ... -
刚做的2款应用
2010-06-08 00:05 1143由于刚升级了android的固件到2.1,因此我也将我 ... -
比价器0.1版本
2010-06-01 23:23 1342做了一个比较当当 卓越 china-pub 图书的价格 ... -
时客1.0beta发布
2010-02-28 15:06 986时客,可以查询火车班次、飞机航班 我在G2上 ... -
做了一个可以查询飞机航班、火车班次的小应用
2010-02-14 15:01 3502做得很粗糙,代码量也很少,数据通过调用web service得 ...
相关推荐
碳足迹核算认证服务合同范本 碳足迹核算认证服务合同范本 碳足迹核算认证服务合同范本
参考世界自然基金会的碳足迹计算器(http://www.climateers.org/chi/contents/carbon_calculator.php)
英国的碳足迹标准,英国的碳足迹标准,英国的碳足迹标准,英国的碳足迹标准,
本文实例讲述了jQuery实现的仿百度分页足迹效果代码。分享给大家供大家参考,具体如下: 这是一个类似于百度的分页足迹效果,基于jquery,原理就是所有为奇数的足迹元素给不一样的样式而已,其它的非奇数元素就按...
立体足迹是刑侦过程中的重要痕迹证据,对立体足迹进行准确的特征数据提取至关重要。依据相应痕迹检验学理论设计出立体足迹特征数据自动采集识别系统。基于Logitech公司C920摄像头完成图像采集,采用wenglor公司CP35...
在前人对生态足迹研究成果的基础上,回顾生态足迹发展历程,从理论研究和 应用研究两个方面把握生态足迹发展的总体脉络。以襄阳市2010年生态足迹计算、分析为例,结合当前生态足迹研究的现状和趋势,尝试提出存在的...
利用IPCC公布的《国家温室气体排放清单指南》中碳排放的计算方法,定量研究2000—2011年中国能源消费的碳足迹数值,并针对近年碳足迹呈现的变化趋势,详细分析能源消费的碳足迹构成、人均碳足迹、碳足迹强度以及碳足迹...
中国中小企业碳足迹核算Excel自动计算表(碳足迹核算:中国中小企业(SME)碳报告工具)
主要介绍了基于Python绘制个人足迹地图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
实现说明: 1. 商品信息可以是静态的模拟就可以 2. 注意实现浏览历史功能里面要包含浏览的时间
生态足迹的分析方法,用于计算生态足迹和生态承载力
中国中小企业碳足迹核算Excel自动计算表,包括碳足迹全生命周期排放过程
碳足迹PAS2050国际标准中文版 碳足迹PAS2050国际标准中文版 碳足迹PAS2050国际标准中文版 碳足迹PAS2050国际标准中文版 碳足迹PAS2050国际标准中文版
针对兰州市2009年各方面对于资源和能源的消费情况,以及兰州市的发展状况,应用生态足迹法并结合人类发展指数(HDI)法定量测度兰州市可持续发展。结果显示兰州市目前处于发展的中下等水平,且生态足迹需求总量大于生态...
一款记录、分享你的旅游足迹、故事的微信小程序,前端 ...caolvji-master.zip
基于淮南市2002—2014年能源消费和植被覆盖等情况的基础数据,分析了淮南市碳足迹、碳承载力等相关表征指标的变化规律,以期为相关部门环境决策提供一些理论参考依据。结果表明:淮南市碳足迹稳中有增,量值较高,能源...
用生态足迹的理论与方法,对陕西省关中地区2001—2008年的生态足迹和生态承载力进行了计算,并运用灰色预测模型对关中地区2010—2015的生态足迹做出预测。结果表明:当地人均生态足迹呈现上升趋势,由0.650 7 ha2.人-1...
生态足迹研究进展综述,常文娟,梁忠民,系统地介绍了生态足迹的内涵、理论假设及计算模型。通过综合国内外已有的研究,从生态足迹主要模型方法、评价指标以及基于生态足