小编ant*_*nio的帖子

一次在每个标记上显示信息窗口

我想表现出类似的东西 这个

我可以在地图上显示所有标记,但是我想在填充所有标记时在每个标记上显示信息窗口.到目前为止我已经尝试了这个,但它显示了只有一个标记信息窗口的所有标记.

for (int i = 0; i < jobsDtoList.size(); i++) {
    Double latitude = Double.parseDouble(jobsDtoList.get(i).getSiteLatitude());
    Double longitude = Double.parseDouble(jobsDtoList.get(i).getSiteLongitude());

    LatLng latLng = new LatLng(latitude, longitude);
    MarkerOptions TP = new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.mipmap.job_marker));
    googleMap.addMarker(TP).showInfoWindow();
}
Run Code Online (Sandbox Code Playgroud)

android google-maps marker

22
推荐指数
1
解决办法
1万
查看次数

如何获取提供URI的位图,java.io.FileNotFoundException:没有内容提供者:/sdcard/Hello/1310610722879.jpg

我已经阅读了这样做的例子:

 protected void onActivityResult(int requestCode, int resultCode, Intent data)
 {
     super.onActivityResult(requestCode, resultCode, data);
     if (resultCode == RESULT_OK)
     {
         Uri imageUri = data.getData();
         Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),              imageUri);
     }
 }
Run Code Online (Sandbox Code Playgroud)

但我得到java.io.FileNotFoundException:没有内容提供者:/sdcard/Hello/1310610722879.jpg

我的代码在这里:

Uri uri1 = Uri.parse(Config.getPhotoPath(this));                
try {
    Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri1);
    attachButton.setImageBitmap(bitmap);
} catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何使其工作?

好吧我搞砸了,你必须这样做:

Uri uri1 = Uri.parse("file://" + Config.getPhotoPath(this));
Run Code Online (Sandbox Code Playgroud)

android bitmap android-contentprovider

10
推荐指数
2
解决办法
1万
查看次数

DefaultClusterRenderer getMarker()在缩放时返回null

我想在点击时更改群集标记的背景.我通过这样做

@Override
onClusterClick(Cluster<MyObject> cluster) {
    Marker marker = renderer.getMarker(cluster);
    marker.setIcon(....);
}
Run Code Online (Sandbox Code Playgroud)

对于一种情况,这很好用:当我放大或缩小时,簇标记的数量不会改变.例如,如果我有一个15个集群和一个5个集群,那么放大或缩小一个级别,保留相同的两个集群.单击其中一个现在renderer.getMarker(cluster)返回null.如果它们在缩放后重新聚类,则getMarker不为null.

我的DefaultClusterRenderer在下面.我检查了标记onClusteredRendered,它永远不会为空.这是DefaultClusterRenderer中的错误还是应该执行其他操作?

private class MyRenderer extends DefaultClusterRenderer<MyObject> {

    private IconGenerator iconGenerator;
    private float density;

    public MyRenderer(Context context, GoogleMap map, ClusterManager<MyObject> clusterManager) {
        super(context, map, clusterManager);
        density = context.getResources().getDisplayMetrics().density;
    }

    @Override
    protected void onBeforeClusterItemRendered(MyObject item, MarkerOptions markerOptions) {
        markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.my_pin));
    }

    @Override
    protected void onBeforeClusterRendered(Cluster<MyObject> cluster, MarkerOptions markerOptions) {
        if(iconGenerator == null) {
            iconGenerator = new IconGenerator(getActivity());
            iconGenerator.setContentView(makeTextView(getActivity()));
        }
        iconGenerator.setBackground(makeBackground(false));

        markerOptions.icon(BitmapDescriptorFactory.fromBitmap(iconGenerator.makeIcon(String.valueOf(cluster.getSize()))));
    }

    @Override
    protected void onClusterRendered(Cluster<MyObject> cluster, …
Run Code Online (Sandbox Code Playgroud)

android google-maps markerclusterer

10
推荐指数
1
解决办法
1804
查看次数

从TargetActivity中提取/区分ActivityAlias名称

我有多个ActivityAliases都开始一个单一TargetActivity.在我的内心TargetActivity我尝试区分开始的别名TargetActivity.

别名定义Manifest为可启动(intent-filter),它将在主屏幕上显示为快捷方式.用户将点击快捷方式,android将启动我在" android:targetActivity=.."标签中定义的活动.

对于我目前的提取componentNameIntent,这是考虑到我的TargetActivity和使用className().

喜欢:

String aliasName = targetActivity.getComponentName().getClassName();
Run Code Online (Sandbox Code Playgroud)

这适用于许多设备.但目前我在OnePlus上看到了一些失败.在该设备上,我的技术只返回我的TargetActivity的className,因此我无法根据用户启动的别名传递操作.

有没有其他可靠的方法可以ActivityAlias用来启动TargetActivity?它不需要是名称本身,只要我能区分它们.我不想为每个Alias创建专用的TargetActivities!

谢谢!

Ps.:我看到了另一种方法,它使用PackageManager来检索activityInfo并使用Activity.name.但我怀疑这会带来与我的第一种方法不同的东西.

ActivityInfo aInfo = activity.getPackageManager().getActivityInfo(activity.getComponentName(), PackageManager.GET_META_DATA);

String aliasName = aInfo.name;
Run Code Online (Sandbox Code Playgroud)

我也尝试过元数据:

编辑:

不幸的是,这种方法并不适用于所有设备.如果alias-className从activity.component 解析后返回 target-activity,那么元数据方法也会失败.

我继续寻找答案,并找到了一个很好的解决方法来区分TargetActivty中的别名.

您可以在ActivityAlias标记内提供元数据,如下所示:

<activity-alias 
    android:name=".aliasName" 
    android:enabled="false" 
    android:exported="true" 
    android:icon="@drawable/someIconRes" 
    android:label="@string/someLabelRes" android:targetActivity=".yourTargetActivity"> 
    <meta-data android:name="alias" android:value="valueToDistinguish"/>
    <intent-filter>  
        <action android:name="android.intent.action.MAIN"/> 
        <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 
</activity-alias> …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-intent android-activity android-activity-alias

9
推荐指数
1
解决办法
663
查看次数

一个Android活动中包含两个MapView:跳跃/闪烁标记

我正在开发一个适用于平板电脑的Android应用,该应用在master-detail-layout中显示了两个带有标记的地图。

两种地图都包含不同的标记。当我开始在其中一张地图中移动相机时,另一张地图上的标记开始跳跃/闪烁,有时甚至停留在错误的位置。

我 只需将标记添加到两个地图中,就可以重现google-maps android-samples的问题,仅此而已。闪烁实际上远比gif中可见。

gif显示跳跃标记

为完整起见,这是整个更改后的活动:

public class MultiMapDemoActivity extends AppCompatActivity {
    private static final LatLng BRISBANE = new LatLng(-27.47093, 153.0235);
    private static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);
    private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);
    private static final LatLng ADELAIDE = new LatLng(-34.92873, 138.59995);
    private static final LatLng PERTH = new LatLng(-31.952854, 115.857342);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.multimap_demo);

        final SupportMapFragment firstMapFragment =
                (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map1);

        firstMapFragment.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-markers google-maps-android-api-2

6
推荐指数
0
解决办法
988
查看次数

在Mac OS X版本10.10.5(14F27)上"Genymotion意外退出"

我一直试图在macbook上安装Genymotion 2.7.2.我已经通过各种教程,没有一个帮助.

我已经安装了virtualBox版本2.0.22,重新启动然后打开了Genymotion .dmg文件.从Applications文件夹打开应用程序给了我以下错误,并要求我重新打开.

我尝试过不同的方式,但没有一个工作.有没有我做错了什么?

错误详细信息的屏幕截图

macos android virtualbox genymotion

6
推荐指数
2
解决办法
1054
查看次数

理解扳手解释

我在 Google Cloud Spanner 中有一个 860M 行的表格,我试图了解解释的工作原理。

该表有一个字符串列geoid,该列有一个索引。

当我运行以下查询时,它只需要 36 毫秒:

SELECT count(*)
FROM usbg_2015
WHERE geoid= '340170175001'
Run Code Online (Sandbox Code Playgroud)

表结构为:

CREATE TABLE usbg_2015 (
    geoid STRING(12),
    quadkey STRING(24),
) PRIMARY KEY (geoid, quadkey)
Run Code Online (Sandbox Code Playgroud)

但是,我不明白为什么解释说它使用Table Scan而不是Index Scan。我将表扫描理解为对的完整扫描,在这种情况下读取 860M 行,它应该花费超过 36 毫秒的时间。我缺少什么?

在此处输入图片说明

google-cloud-spanner

6
推荐指数
1
解决办法
251
查看次数

将谷歌地图标记保存到 android studios 中的 SharedPreferences

我正在开发一个应用程序,在其中onLongClick将标记放在谷歌地图上。我的问题是在应用程序关闭时保存这些标记。

我使用共享首选项来保存 lat 和 lng 的值,并在应用程序重新启动时加载这些值。但是,当我将这些值传递给一个方法来制作一个标记时,错误猫说我试图在一个空引用上调用一个方法。

任何帮助将不胜感激。请在下面找到代码。

public class SecondMaps extends AppCompatActivity implements OnMapReadyCallback, GoogleMap.OnMapLongClickListener {

    private GoogleMap mMap;
    EditText addressEditText;
    String title;
    LatLng position1;

    SharedPreferences sharedPreferences;
    int locationCount;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);


        // Opening the sharedPreferences object
        sharedPreferences = getSharedPreferences("location", 0);

        // Getting number of locations already stored
        locationCount = sharedPreferences.getInt("locationCount", …
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-markers android-studio

2
推荐指数
1
解决办法
2212
查看次数

Android LocationListener不起作用

我写了这段代码,但是MyLocationListener该类不起作用。当我像“查找我”这样的短信时,代码必须给我大概的位置,但它什么也没做。这是怎么了?

public class SMSReceiver extends BroadcastReceiver {

    private LocationManager lm;
    private LocationListener locationlistener;
    private String senderTel;

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub

        // get the sms
        Bundle bundle = intent.getExtras();
        SmsMessage[] msgs = null;
        String str = "";

        if (bundle != null) {
            senderTel = "";

            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];
            for (int i = 0; i < msgs.length; i++) {

                msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                if (i …
Run Code Online (Sandbox Code Playgroud)

android location

1
推荐指数
1
解决办法
4654
查看次数

如何在Google地图上绘制静态目标圈?

我一直在寻找在Google地图上绘制一个静态半径的圆圈,我遇到的所有答案都描述了绘制标记和圆圈,它们与lat长坐标相关联.

我需要的是:

在此输入图像描述

圆圈和标记浮动在Google地图片段上方,即:当您平移和缩放时,它会保持静态.这里是棘手的部分:我希望能够在地图中获取覆盖区域进行处理(例如:lat,中心标记的长度和圆的半径,具体取决于地图上的缩放级别).

我怎样才能做到这一点?提前致谢.

android google-maps

1
推荐指数
1
解决办法
1343
查看次数

java.lang.IllegalStateException:onCreate()之前不可用的活动的系统服务当尝试将用户位置存储为变量时

我为我的最后一年项目创建了一个距离计算器.计算器应显示用户当前位置,然后在按下时在地图上显示标记.距离将从用户当前位置显示到标记.

我检索了用户位置并存储为我在代码中使用的变量但是我被抛出了java.lang.IllegalStateException: System services not available to Activities before onCreate()错误.我已尝试从onCreate()方法开始放置我的代码,但这也不起作用.任何帮助将不胜感激.我一直在努力让它工作但没有运气.当我尝试放置(LocationManager)getSystemService(Context.LOCATION_SERVICE);onCreate()它需要一个许可,我用尽了一切.

这是我的代码

package com.example.matthewmcnabb.moyola;

import android.Manifest;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.view.View;

import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;

import …
Run Code Online (Sandbox Code Playgroud)

java android google-maps system-services

1
推荐指数
1
解决办法
1011
查看次数