- 浏览: 441785 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
sunwang810812:
万分感谢中!!!!!这么多年终于看到一个可运行可解决的方案!! ...
POI 后台生成Excel,在前台显示进度 -
zzb7728317:
LZ正解
Spring Jackson AjaxFileUpload 没有执行回调函数的解决办法 -
sleeper_qp:
lz是在源码上修改的么? 源码的话你重新编译一遍了么? 可 ...
由nutch readseg -dump 中文编码乱码想到的…… -
shenjian430:
请问你改好的程序在写在哪了?
由nutch readseg -dump 中文编码乱码想到的…… -
yinxusen:
It seems to be the bug occur in ...
Mahout Local模式 执行example的注意点
1.在res/layout目录下建立pop view的xml文件:overlay_pop.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="@drawable/bubble_background" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="5px" android:paddingTop="5px" android:paddingRight="5px" android:paddingBottom="20px"> <TextView android:id="@+id/map_bubbleTitle" android:ellipsize="marquee" style="@style/map_BubblePrimary" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:singleLine="true" /> <TextView android:id="@+id/map_bubbleText" style="@style/map_BubbleSecondary" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="false" /> </LinearLayout>
其中用到的style是放在res/values中的style.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="map_BubblePrimary"> <item name="android:textStyle">bold</item> <item name="android:typeface">monospace</item> <item name="android:textColor">#000</item> </style> <style name="map_BubbleSecondary"> <item name="android:textStyle">italic</item> <item name="android:textColor">#000</item> </style> </resources>
另外,作为背景的bubble_background图片是采用采用9.png的格式:
在onCreate中:
MapView是继承自ViewGroup 的,因此,MapView有addView()方法,同时还有MapView.LayoutParams
MapView.LayoutParams 可以根据GeoPoint来定位,我就是利用这个特性来定位弹出的popView的.
View popView = View.inflate(this, R.layout.overlay_pop, null); mapView.addView(popView, new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT, null, MapView.LayoutParams.BOTTOM_CENTER)); popView.setVisibility(View.GONE);
2.实现点击某个Overlay弹出popView。
overlay有onTap()方法,你可以实现自己的overlay onTap()方法,弹出popView,
也可以使用setOnFocusChangeListener(),在listener中实现弹出popView,.
我是用的listener,因为setOnFocusChangeListener在失去焦点也会触发,我可以再失去焦点的时候隐藏popView.
/** * 气泡窗口监听器 */ private final ItemizedOverlay.OnFocusChangeListener onFocusChangeListener = new ItemizedOverlay.OnFocusChangeListener() { @Override public void onFocusChanged(ItemizedOverlay overlay, OverlayItem newFocus) { // 创建气泡窗口 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); 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); } } };
3.自己实现一个继承自ItemizedOverlay的Overlay,
Overlay中有一个
private static final int LAYER_FLAGS = Canvas.MATRIX_SAVE_FLAG | Canvas.CLIP_SAVE_FLAG | Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | Canvas.FULL_COLOR_LAYER_SAVE_FLAG | Canvas.CLIP_TO_LAYER_SAVE_FLAG;
private final ArrayList<OverlayItem> overlayItems = new ArrayList<OverlayItem>();
和用于向overlayItems中添加OverlayItem的方法
public void addOverlay(OverlayItem overlay) { overlayItems.add(overlay); populate(); }
在override的draw方法中
@Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { if (!shadow) { canvas.save(LAYER_FLAGS); Projection projection = mapView.getProjection(); int size = overlayItems.size(); Point point = new Point(); Paint paint = new Paint(); paint.setAntiAlias(true); OverlayItem overLayItem; for (int i = 0; i < size; i++) { overLayItem = overlayItems.get(i); Drawable marker = overLayItem.getMarker(0); // marker.getBounds() /* 象素点取得转换 */ projection.toPixels(overLayItem.getPoint(), point); if (marker != null) { boundCenterBottom(marker); } /* 圆圈 */ paint.setColor(Color.RED); canvas.drawCircle(point.x, point.y, 5, paint); /* 标题 */ String title = overLayItem.getTitle(); if (title != null && title.length() > 0) { paint.setColor(Color.BLACK); paint.setTextSize(15); canvas.drawText(title, point.x, point.y, paint); } } canvas.restore(); } super.draw(canvas, mapView, shadow); }
在onCreate中初始化
overlay.addOverlay(new OverlayItem(pointQSH, "清水河", "清水河校区")); overlay.addOverlay(new OverlayItem(pointSH, "沙河", "沙河校区")); overlay.setOnFocusChangeListener(onFocusChangeListener); mapView.getOverlays().add(overlay);
OK,实现效果:
发表评论
-
【转】区分Activity的四种加载模式
2012-01-11 21:33 934转自http://marshal.easymorse.c ... -
【转】Android之完美退出方法(2.1-2.2-2.3SDK版本均测试通过)
2012-01-11 15:49 1296转自:http://hi.baidu.com/xunle ... -
【转】Android程序完全退出的三种方法
2012-01-11 14:38 1101以下为网络上找的文 ... -
在程序中,打开google手机自带的程序Maps
2012-01-11 14:32 955Uri uri = Uri.parse("ht ... -
android keystore
2012-01-11 11:55 1031C:\Program Files\Java\jdk1.6 ... -
解决ListView和ExpandableListView滚动时背景变黑
2012-01-10 11:24 1660今天做东西的时候发现ListView和Expandabl ... -
android中intent的作用
2012-01-10 00:25 25631 Intent.ACTION_MAIN St ... -
关于Android中Java与Javascript之间的传值研究
2012-01-10 00:23 3000Android中提供的WebView的功能不可谓不强大, ... -
Android自适应屏幕大小和layout布局(横屏|竖屏)
2011-12-27 14:27 2602一:不同的layout Android手机屏幕大小不一,有48 ... -
从sbf刷机包里提取需要的apk文件
2011-11-18 14:07 25691、首先必然要有刷机包sbf文件 2、用MotoAndroi ... -
MB502 使用心得
2011-08-20 00:34 36241、解决MOTO ME502用不了CMWAP的办法 第 ... -
Android中点中overlay弹出带尾巴的气泡的实现
2010-11-17 20:59 8331.在res/layout目录下建立pop view的xml文 ... -
(转)Android中LocationManager的简单使用,获取当前位置
2010-11-16 21:22 2281Android中LocationManager的提供了一系 ... -
创建指南针View的例子(2)
2010-11-12 15:25 15447. 为了查看指南针,修改main.xml资源,使用你的C ... -
创建指南针View的例子(1)
2010-11-12 15:20 1120在接下来的例子里,你将通过扩展View类创 ... -
Android Bitmap和Canvas学习笔记
2010-11-12 15:18 1140位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户 ... -
android sqlite3 adb使用
2010-10-04 23:10 15431.首先,emulator必须跑起来。可以通过eclipse或 ...
相关推荐
在Android开发中,创建带有尾巴的气泡...通过以上步骤,你可以实现在Android的MapVeiw中,当用户点击OVERLAY时,弹出一个带有尾巴的气泡View,显示相关的文字信息。这个功能在地图应用中非常实用,能有效提升用户体验。
- 记得在`onClusterClick()`方法中处理点击事件,通常会弹出一个信息窗口或者进行其他操作。 2. **Overlay点击选中功能**: - 首先,创建一个自定义的`MapView`,继承自`com.amap.api.maps.MapView`,并在其中...
在百度地图Android SDK中,Overlay Item通常表示地图上的一个特定标记或图标,例如用户的位置、兴趣点等。拖拽功能允许用户通过手指操作移动这些标记,这在需要动态调整位置或进行交互式操作的场景下非常有用。 ...
总之,ItemsOverlay是Android中实现百度地图自定义覆盖物的重要工具,通过它我们可以实现各种丰富的地图交互功能,如点击overlay弹出带尾巴的气泡。通过不断学习和实践,你可以更好地掌握这一技术,为用户提供更加...
`Overlay`是Android SDK中用于在地图上绘制图形或文本的对象,它允许我们在地图上添加自定义的图标或标注。 首先,我们需要在项目中引入Google Maps API。在`build.gradle`文件中添加依赖: ```groovy ...
1. **`WindowManager`服务**:在Android中,`WindowManager`是一个系统服务,它允许应用程序添加、移除或更新视图到窗口管理器的层次结构中。通过`Context.getSystemService(Context.WINDOW_SERVICE)`可以获取到`...
`Popup`在地图应用中通常指的是临时弹出的窗口,它能以轻量级的形式展示一些额外信息,不会遮挡地图的主要视图。在高德地图API中,`Popup`是用于在地图上添加可交互的信息窗口,它可以包含文字、图片甚至是复杂的...
5. **创建弹出窗口**:在Android中,我们可以使用PopupWindow或者自定义对话框来实现弹出窗口。PopupWindow允许在屏幕任意位置显示,而自定义对话框则更加规范化。这里假设我们使用PopupWindow,创建并显示弹出窗口...
在该方法中,你可以检查点击的位置是否与气泡重合,然后执行相应的操作,如弹出信息窗口、导航到特定位置等。 4. **地理坐标与屏幕像素转换**: 在Android地图上处理点击事件时,需要将地图上的地理坐标(经纬度)...
在 Android 6.0 及更高版本中,popup window 需要使用 TYPE_APPLICATION_OVERLAY 类型,否则将无法正常显示弹出框。在 AndroidManifest.xml 中需要声明对应的权限: `<uses-permission android:name="android....
在Android开发中,全局弹出对话框是一种常见需求,特别是在某些特定场景下,如通知用户、请求确认或显示重要信息。然而,为了实现全局对话框,开发者需要掌握一种特殊的权限,即`SYSTEM_ALERT_WINDOW`权限。这个权限...
此资料包含 Android学习笔记 - 地图.doc 通过地名获得经纬度并标识在...点中overlay弹出带尾巴的气泡的实现.doc 传递坐标到Google地图.doc android map.doc Android地图和定位学习总结 .doc 希望对大家有帮助。。。。
Voice overlay helps you turn your user's voice into text, providing a polished UX while handling for you the necessary permission. Demo You can clone this repo, then run the Demo ...
Android overlay 机制允许在不修改packages中apk的情况下,来自定义 framework和package中的资源文件,实现资源的定制。来达到显示不同的UI得目的(如MIUI)。 希望本文档会给有需要的朋友带来帮助;感兴趣的朋友...
在描述中提到的“弹出窗口”,在Android中可能指的是对话框(Dialog)或者InfoWindow(信息窗)。对于InfoWindow,它是百度地图API提供的一种轻量级的弹窗,用于展示标注的详细信息。我们可以通过设置`Marker`的`...
一个常见的需求是在地图上的特定位置显示提示信息或者警告,通常通过在指定位置弹出一个带有指向该位置标记的“气泡”来实现这一目的。这种气泡提示不仅能够增强用户体验,还能够让用户更加清晰地了解当前位置的重要...
在Android的视频输出架构中,Overlay系统扮演着至关重要的角色。它提供了一个叠加在主显示层上的额外显示层,主要用于视频输出或摄像头预览。Overlay系统通过`ISurface`接口进行操作,该接口允许创建、注册和管理...