如何在Android中查看ArcGIS图层图例?

如何在Android中查看ArcGIS图层图例?,android,arcgis,Android,Arcgis,在我的ArcGIS功能服务器中有3个层(排水、桥梁和坡度)。我的Android应用程序在ArcGISmap上查看每个图层,并根据复选框勾选设置图层可见性。我正在使用适用于Android的ArcGIS运行时SDK(版本100.1) 我的问题是,是否可以将feature server中的图层图例查看到“我的图层”对话框中?表示替换3个可爱图标 Android应用程序(中间的图层对话框) 要素服务器(左侧图层图例) 提前谢谢你 更新 感谢使用!这是我的工作代码 // Loop each laye

在我的ArcGIS功能服务器中有3个层(排水、桥梁和坡度)。我的Android应用程序在
ArcGISmap
上查看每个图层,并根据复选框勾选设置图层可见性。我正在使用适用于Android的ArcGIS运行时SDK(版本100.1)

我的问题是,是否可以将feature server中的图层图例查看到“我的图层”对话框中?表示替换3个可爱图标

Android应用程序(中间的图层对话框)

要素服务器(左侧图层图例)

提前谢谢你


更新 感谢使用!这是我的工作代码

// Loop each layer
for (int x=0; x<featureLayer.length; x++)
{
    try
    {
        // Try get each layer legend
        final ListenableFuture<List<LegendInfo>> layerLegend = featureLayer[x].fetchLegendInfosAsync();

        final int finalX = x;
        layerLegend.addDoneListener(new Runnable()
        {
            @Override
            public void run()
            {
                try
                {
                    // Get each layer legend
                    List<LegendInfo> legendInfo = layerLegend.get();
                    Symbol legendSymbol = legendInfo.get(0).getSymbol();
                    ListenableFuture<Bitmap> symbolSwatch = legendSymbol.createSwatchAsync(MainActivity.this, Color.TRANSPARENT);

                    // Set each layer legend
                    Bitmap symbolBitmap = symbolSwatch.get();
                    ImageView swatchImg = (ImageView) drawerDialog.findViewById(layerImageViewId[finalX]);
                    swatchImg.setImageBitmap(symbolBitmap);
                }
                catch (InterruptedException e)
                {
                    //showMessage("Animation interrupted");
                }
                catch (ExecutionException e)
                {
                    // Deal with exception during animation...
                }
            }
        });
    }
    catch (Exception e)
    {
        // Ignore changing layer legend
    }
}
//循环每一层
对于(intx=0;x,我想它会满足您的要求

只是为了展示一种使用方法:

float density = InstrumentationRegistry.getContext().getResources().getDisplayMetrics().density;
for (FeatureType type : featureTable.getFeatureTypes()) {
  for (FeatureTemplate template : type.getTemplates()) {
    Geometry geometry = //create whatever shape you want the swatch to be
    Feature feature = featureTable.createFeature(template, geometry);
    Symbol symbol = featureLayer.getRenderer().getSymbol(feature);
    ListenableFuture<Bitmap> symbolSwatch = symbol.createSwatchAsync(24, 24,
        density,color,feature.getGeometry());

    Bitmap swatch = symbolSwatch.get();
  }
}
float density=InstrumentationRegistry.getContext().getResources().getDisplayMetrics().density;
对于(FeatureType类型:featureTable.getFeatureTypes()){
对于(FeatureTemplate模板:type.getTemplates()){
几何体=//创建希望样例为的任何形状
Feature Feature=featureTable.createFeature(模板、几何体);
Symbol Symbol=featureLayer.getRenderer().getSymbol(特征);
ListenableFuture symbolSwatch=symbol.createSwatchAsync(24,24,
密度、颜色、特征;
位图样例=symbolSwatch.get();
}
}
我想我会满足你的要求

只是为了展示一种使用方法:

float density = InstrumentationRegistry.getContext().getResources().getDisplayMetrics().density;
for (FeatureType type : featureTable.getFeatureTypes()) {
  for (FeatureTemplate template : type.getTemplates()) {
    Geometry geometry = //create whatever shape you want the swatch to be
    Feature feature = featureTable.createFeature(template, geometry);
    Symbol symbol = featureLayer.getRenderer().getSymbol(feature);
    ListenableFuture<Bitmap> symbolSwatch = symbol.createSwatchAsync(24, 24,
        density,color,feature.getGeometry());

    Bitmap swatch = symbolSwatch.get();
  }
}
float density=InstrumentationRegistry.getContext().getResources().getDisplayMetrics().density;
对于(FeatureType类型:featureTable.getFeatureTypes()){
对于(FeatureTemplate模板:type.getTemplates()){
几何体=//创建希望样例为的任何形状
Feature Feature=featureTable.createFeature(模板、几何体);
Symbol Symbol=featureLayer.getRenderer().getSymbol(特征);
ListenableFuture symbolSwatch=symbol.createSwatchAsync(24,24,
密度、颜色、特征;
位图样例=symbolSwatch.get();
}
}

谢谢,我尝试了此代码,并尝试在ImageView上显示样例,如下所示
ImageView样例=(ImageView)findViewById(R.id.swatchImg);swatchImg.setImageBitmap(样例);
但是没有显示图像。你能帮我解释一下你理解的流程吗?因为我仍然不理解代码的作用。非常感谢!谢谢,创建样例工作!我更新了问题的解决方案。谢谢,我尝试了这段代码,并试着在ImageView上显示样例,就像这样
ImageView swatchImg=(ImageView)findViewById(R.id.swatchImg);swatchImg.setImageBitmap(swatch);
但是没有显示图像。你能帮我解释一下你理解的流程吗?Bcs我仍然不理解代码的作用……非常感谢!谢谢,创建swatch工作!我更新了问题的解决方案。