- 浏览: 40725 次
- 性别:
- 来自: 日照
最新评论
-
wuhanchendalong:
哥们你能把这个源代码的布局文件发给我好吗?我看看 非常感谢 ...
Android 自定义BaseAdapter -
greatghoul:
antkingwei 写道greatghoul 写道有木有跨平 ...
Java 在CS客户端做网页连接 -
antkingwei:
greatghoul 写道有木有跨平台的实现方法?什么意思?
Java 在CS客户端做网页连接 -
greatghoul:
有木有跨平台的实现方法?
Java 在CS客户端做网页连接
新建图层
package com.android.angking.yibai; import java.util.ArrayList; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Point; import android.graphics.drawable.Drawable; import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.MapView; import com.google.android.maps.OverlayItem; import com.google.android.maps.Projection; public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem>{ private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); private Context context; public CustomItemizedOverlay(Context context,Drawable defaultMarker){ super(boundCenterBottom(defaultMarker)); this.context = context; } public void draw(Canvas canvas,MapView mapView,boolean shadow){ super.draw(canvas, mapView, shadow); //Projection 接口用于屏幕像素点坐标体系和地球概况纬度点坐标体系之间的变换 Projection projection = mapView.getProjection(); //遍历所有的OverlayItem for(int index = this.size()-1;index>=0;index--){ //获得给定索引的item OverlayItem overlayItem = getItem(index); //把经纬度变换相对于MapView左上角的屏幕像素坐标 Point point = projection.toPixels(overlayItem.getPoint(), null); Paint paintText = new Paint(); paintText.setColor(Color.RED); paintText.setTextSize(13); //绘制文本 canvas.drawText(overlayItem.getTitle(), point.x+10, point.y-15, paintText); } } protected boolean onTap(int index){ setFocus(mOverlays.get(index)); return super.onTap(index); } public void removeAll(){ if(mOverlays.size()>=0){ mOverlays.removeAll(mOverlays); } } public void addOverlay(OverlayItem overlay){ mOverlays.add(overlay); populate(); } // public CustomItemizedOverlay(Drawable defaultMarker) { // super(boundCenterBottom(defaultMarker)); // // TODO Auto-generated constructor stub // } @Override protected OverlayItem createItem(int i) { // TODO Auto-generated method stub return mOverlays.get(i); } @Override public int size() { // TODO Auto-generated method stub return mOverlays.size(); } }
自定义OverlayItem
package com.android.yibai.antking; import android.graphics.Bitmap; import com.google.android.maps.GeoPoint; import com.google.android.maps.OverlayItem; public class MyOverlayItem extends OverlayItem{ private Bitmap bitmap; public MyOverlayItem(GeoPoint point, String title, String snippet,Bitmap bitmap) { super(point, title, snippet); this.bitmap = bitmap; // TODO Auto-generated constructor stub } public Bitmap getBitmap(){ return bitmap; } }
实现类
package com.android.yibai.antking; import java.util.List; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.google.android.maps.GeoPoint; import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; public class MapMain extends MapActivity{ /** * 地图 */ protected MapView mapView; /** * 弹出的气泡View */ private View popView; private int[] image={R.drawable.icon}; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //初始化气泡,并设置为不可见 popView = View.inflate(this, R.layout.popview, null); setContentView(R.layout.main); //获得map mapView = (MapView)this.findViewById(R.id.mapview); mapView.addView(popView,new MapView.LayoutParams( MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT,null ,MapView.LayoutParams.BOTTOM_CENTER)); //这里没有给GeoPoint ,在onFoucusChangeListener中设置 popView.setVisibility(View.GONE); /** * 创建图标资料(用于显示在overlayItem所表示表记的地位 */ Drawable drawable =this.getResources().getDrawable(R.drawable.icon); //为mark定以地位和鸿沟 drawable.setBounds(0,0,drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); CustomItemizedOverlay overlay = new CustomItemizedOverlay(this,drawable); //设置显示/隐藏气泡的位置 overlay.setOnFocusChangeListener(onFocusChangeListener); /** * 创建并添加一个标志 */ GeoPoint point = new GeoPoint(35422006,119524095); //创建标识 Bitmap bitmap = BitmapFactory.decodeResource(MapMain.this.getResources(), R.drawable.psu); MyOverlayItem overlayItem = new MyOverlayItem(point ,"银河公园","这是一个充满神奇的公园,一步一景,我去的时候有一种柳暗花明又一村的感觉",bitmap); overlay.addOverlay(overlayItem); /** * 创建第二个标识 */ Bitmap bitmap1 = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon); GeoPoint point1 = new GeoPoint((int)(22.53108*1E6),(int)(113.99151*1E6)); MyOverlayItem overlayItem1 = new MyOverlayItem(point1,"秀丽中华","中国最好的旅游胜地之一",bitmap1); overlay.addOverlay(overlayItem1); //向地图里添加自定义的ItemizedOverlay List<Overlay> mapOverlays =mapView.getOverlays(); mapOverlays.add(overlay); //设置地图为卫星地图 mapView.setSatellite(true); //设置地图可以缩放 mapView.setBuiltInZoomControls(true); /** * 取得地图管理对象,用于把握地图 * */ //设置地图的中间 mapView.getController().setCenter(point); //设置地图默认的缩放级别 mapView.getController().setZoom(13); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } private final ItemizedOverlay.OnFocusChangeListener onFocusChangeListener = new ItemizedOverlay.OnFocusChangeListener() { @Override public void onFocusChanged(ItemizedOverlay overlay, OverlayItem newFocus) { // TODO Auto-generated method stub //创建气泡窗口 if(popView!=null){ popView.setVisibility(View.GONE); } if(newFocus !=null){ MapView.LayoutParams geoLp =(MapView.LayoutParams) popView .getLayoutParams(); geoLp.point = newFocus.getPoint();//这行用于popView的定位 TextView title = (TextView)popView.findViewById(R.id.map_bubbleTitle); title.setText(newFocus.getTitle()); TextView desc = (TextView)popView.findViewById(R.id.map_bubbleText); ImageView image = (ImageView)popView.findViewById(R.id.map_bubbleImage); image.setImageBitmap(((MyOverlayItem) newFocus).getBitmap()); if(newFocus.getSnippet()==null ||newFocus.getSnippet().length()==0){ desc.setVisibility(View.GONE); }else{ desc.setVisibility(View.VISIBLE); desc.setText(newFocus.getSnippet()); } mapView.updateViewLayout(popView,geoLp); popView.setVisibility(View.VISIBLE); } } }; }
发表评论
-
Android开发中用到的几种多线程
2012-03-12 10:42 2130在开发工程中线程可以帮助我们提高运行速度,Andro ... -
android 数据库随APK打包发布
2012-03-09 22:01 2238有些时候我们的软件用到SQLite数据库,这个时候怎么把一个做 ... -
goolge 地图地址位置解析
2012-02-24 16:50 1128Java代码package com.android.yibai ... -
Android ImageView使用网上图片资源
2012-02-24 16:47 1727Java代码package com.android.antk ... -
Android手机与WEB服务器通信
2012-02-24 12:30 2715Tomcat服务器 package com.edu.q ... -
手机于PC服务器通信
2012-02-24 12:16 1055手机客户端 package com.newsocket ... -
在google地图上画出两点的行走路线
2012-02-23 12:56 1701新建一个图层 package com.androi ... -
GPS定位那点事
2012-02-22 15:30 1410<?xml version="1.0 ... -
手机上使用google 搜索引擎
2012-02-22 15:25 1113<?xml version="1.0&q ... -
android phoneGap开发
2012-01-15 08:42 1025PhoneGap是一个用基于HTML,CSS和JavaScri ... -
Android Google地图开发入门
2011-12-29 17:17 1770Android开发要连接GoogelMaps使用MapVi ... -
集中管理Activity
2011-12-25 15:21 1088有时候在设计软件的时候布局复杂的话不利于查看跟更改,这时 ... -
Android Dilaog 设置没有标题注意的地方
2011-12-23 12:51 1367layoutInflater = LayoutInfla ... -
AndroidUI设计美化
2011-12-18 15:52 921不要说Android中UI做的丑是因为不会美化,其实做一个 ... -
Android QQ多级列表的实现
2011-12-17 19:40 2278主类: package com.android.qu ... -
Android SharedPreferences应用解析
2011-12-11 09:52 1162在任何软件中,数据存储都是非常重要的,一定程度上来说它是软件 ... -
Android GridView,Gallery动态更新数据
2011-12-09 00:05 3012package com.android.wei.z ... -
Android 划出一个半透明的PopupWindow
2011-12-07 22:22 2732效果图好像不显示了package com.android ... -
Android 自定义BaseAdapter
2011-12-04 13:57 1289不要对俺的贴图做评价 看一下代码实现 pac ... -
Android 3D壁纸开发设计
2011-11-30 19:34 1032希望能给需要得人一点帮助,这个触屏可以改变壁纸映射, J ...
相关推荐
arcgis java adf 点击地图弹出气泡
在高德地图中添加标记marker,点击marker时会弹出对应弹窗,也就是常说的气泡。
这个源码展示了如何在百度地图上弹出气泡。
在高德地图中点击弹出自定义弹框(气泡)。(结合上一个上传的文件,也可用于标记点的点击弹出的弹框气泡)
googlemap显示地图,标注一个或多个poi信息点,弹出气泡显示poi点的位置信息
arcgis java adf 实现点击地图上某点,显示气泡
Android 仿百度地图气泡程序源码
在百度地图上绘图气泡并点击响应
弹出气泡控件
可以做出类似QQ中提示消息,并且在任务栏中
弹出说明气泡的代码,偶然中使用到的,人人为我我为人人嘛!
高仿百度地图气泡 气泡可实现多个按钮点击哦
jQuery制作弹出气泡提醒信息框 很炫 很酷
该资源使用Android Studio进行开发,实现在手机中点击按钮弹出气泡,并且可以对气泡内的控件进行触控以及触发相应的触控事件
android 谷歌地图,模拟5家酒店的经纬度,在地图上面可以显示5个标记,点击后,漂亮的气泡呈现,气泡里面有酒店名称,点击后有响应
googlemap 添加标记 并有气泡效果 可添加多个不同的标记 解压后2个文件 android-mapviewballoons 是第三方类库 MallFinderP2 是使用例子
BubbleLayout 弹出提示气泡
一个非常轻便好用的C#气泡弹出提示框控件。有源代码和示例(VS2015)。
前端弹出气泡功能,可用不同背景颜色的气泡将输入的文本内容进行展示
这是一个地图上显示气泡框的应用,主要是对overlay的继承和气泡框的布局样式。