我有一个滑块,可以拉起来,然后显示一张地图。 我可以上下移动滑块来隐藏或显示地图。 当地图在前面时,我可以在该地图上处理触摸事件。 每当我触摸,一个AsyncTask被启动,它下载一些数据,并使一个Toast显示数据。 尽pipe我在触摸事件上启动任务,但是没有显示出烤面包,直到我closures滑块。 当滑块closures,地图不再显示时, Toast就会出现。 有任何想法吗? 那么开始这个任务吧 编辑: public boolean onTouchEvent(MotionEvent event, MapView mapView){ if (event.getAction() == 1) { new TestTask(this).execute(); return true; }else{ return false; } } 并在onPostExecute做一个敬酒 Toast.makeText(app.getBaseContext(),(String)data.result, Toast.LENGTH_SHORT).show(); 在新的TestTask(this) ,这是对MapOverlay的引用,而不是MapActivity ,所以这就是问题所在。
对onCreate()内的setZoom()进行硬编码感觉非常陈旧,我想通过最初让MapView设置缩放,直到地图上所有GeoPoints / OverlayItems都可见,从而增强用户体验。 这怎么能自动神奇地完成?
我正在尝试在Android上的MapView上绘制一些文本。 文本的绘制很好,但是很难阅读文本,因为它是白色的,没有黑色边框(就像在MapViews上自然显示的表示城市,州和国家的文本的其余部分一样)。 我似乎无法弄清楚如何绘制黑色边框的文字。 任何人都知道如何做到这一点? 这是我现在正在使用的代码types(这只是示例代码,在我的覆盖之一): @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { Paint textPaint = new Paint(); textPaint.setARGB(255, 255, 255, 255); textPaint.setTextAlign(Paint.Align.CENTER); textPaint.setTextSize(16); textPaint.setTypeface(Typeface.DEFAULT_BOLD); canvas.drawText("Some Text", 100, 100, textPaint); super.draw(canvas, mapView, shadow); }
这非常非常奇怪 我从来没有见过这样的事情。 当时我采取了这个截图,我没有加载任何覆盖。 首先,我认为这是我的互联网连接,它无法下载瓦片信息; 但是我们有很多用户报告了从市场上下载的同样的问题。 这刚刚开始发生像一个星期前。 不知道为什么。 任何人都有线索? 谢谢!
我一直在尝试对一个string进行地理编码来获得它的坐标,但是我的程序总是崩溃,因为当我尝试使用getFromLocationName()它将返回null 。 我一直在努力解决这个问题,但没有任何工作。 这是我的代码 public class MainActivity extends Activity { private GoogleMap mMap; List<Address> addresses; MarkerOptions miami; String myLocation = "Miami,Florida"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (mMap == null) { mMap = ((MapFragment) getFragmentManager().findFragmentById( R.id.map)).getMap(); } if (mMap != null) { Geocoder geocoder = new Geocoder(this); double latitude = 0; double longitude […]
我正在使用新的Android Google Maps API 。 我创build了一个包含MapFragment的活动。 在活动onResume将标记设置到GoogleMap对象中,然后为包含所有标记的地图定义边界框。 这是使用下面的伪代码: LatLngBounds.Builder builder = new LatLngBounds.Builder(); while(data) { LatLng latlng = getPosition(); builder.include(latlng); } CameraUpdate cameraUpdate = CameraUpdateFactory .newLatLngBounds(builder.build(), 10); map.moveCamera(cameraUpdate); 对map.moveCamera()的调用导致我的应用程序崩溃,出现以下堆栈: Caused by: java.lang.IllegalStateException: Map size should not be 0. Most likely, layout has not yet at maps.am.rb(Unknown Source) at maps.yqa(Unknown Source) at maps.y.au.a(Unknown Source) at maps.y.ae.moveCamera(Unknown […]
我写了一个MapActivity类,它能够显示一组地方以及单个地方。 启动时,应用程序创build此MapActivity一个实例并显示多个位置。 如果用户点击某个地方,则启动一个新的“ Activity ,显示所选地点的详细信息。 这个活动有一个菜单项,允许用户查看地图上的位置 – 这会导致创build一个新的MapActivity实例,除了现在只显示这个地方。 现在的问题是,如果用户导航回到第一个MapActivity (显示多个地方的那个),则不会再加载瓦片+有时会遇到OutOfMemoryErrors。 根据Android JavaDocs,每个进程只能有一个MapActivity 。 但是,我不想将我的MapActivity定义为singleInstance / singleTask,因为用户应该始终能够导航回显示多个位置的第一个MapActivity。 我已经看到,Google地图应用(与Google Map 4.4一起)为Android使用多个MapActivity实例。 这怎么可能? 我怎么能在我的应用程序中实现它?
最终更新 function请求已由Google完成。 请看下面的答案。 原来的问题 使用Google Maps Android API的旧版本,我可以捕获谷歌地图的屏幕截图,通过社交媒体进行分享。 我使用下面的代码来捕获屏幕截图并将图像保存到一个文件,它工作得很好: public String captureScreen() { String storageState = Environment.getExternalStorageState(); Log.d("StorageState", "Storage state is: " + storageState); // image naming and path to include sd card appending name you choose for file String mPath = this.getFilesDir().getAbsolutePath(); // create bitmap screen capture Bitmap bitmap; View v1 = this.mapView.getRootView(); v1.setDrawingCacheEnabled(true); […]
我在我的Android应用程序中使用谷歌地图。 我已经创build了密钥并在清单文件中添加了必要的权限。 但是很快我开始了应用程序,我在debugging器中得到这个消息: GoogleService无法初始化状态:10,缺less预期的资源:“R.string.google_app_id”以初始化Google服务。 可能的原因是缺lessgoogle-services.json或com.google.gms.google-services gradle插件。 我不知道什么是错的。 地图工作正常,我可以使用它没有任何问题。 我的gradle文件有这个条目: 编译“com.google.android.gms:play-services:8.4.0” 这是什么抱怨,我如何缓解呢?
我很长时间一直忙于找出如何在HelloMapView中的地图上的两个(GPS)点之间画线,但没有运气。 任何人都可以告诉我怎么做。 假设我使用扩展MapView的HelloMapView。 我需要使用覆盖? 如果是这样,我必须重写覆盖的onDraw()方法,并在这里画一条线? 我实际上尝试过这些东西,但没有结果。 先谢谢你!