当前位置: 首页 > 知识库问答 >
问题:

使用android将图像加载到地图标记中

姜卜霸
2023-03-14

我正在尝试添加位图到谷歌地图标记图标。

下面是我将图像添加到标记图标的代码。由于位图大小,应用程序正在崩溃

错误:java。lang.IllegalArgumentException:尺寸为4096x8192的纹理大于支持的最大尺寸4096x4096

BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        int imageHeight = options.outHeight;
        int imageWidth = options.outWidth;
        String imageType=options.outMimeType;
        if(imageWidth > imageHeight) {
            options.inSampleSize = calculateInSampleSize(options,10,10);//if landscape
        } else{
            options.inSampleSize = calculateInSampleSize(options,10,10);//if portrait
        }
        options.inJustDecodeBounds = false;


        Bitmap  mapbitmap = BitmapFactory.decodeFile("/storage/emulated/0/Pictures/TAG_IMG_25.2571724_55.2994563.jpg", options);

latLng=new LatLng(25.254376, 55.2973058);

marker = googleMap.addMarker(new MarkerOptions()
            .position(latLng)
            .title(_title)
            .snippet("dubai")
            .icon(BitmapDescriptorFactory.fromBitmap(mapbitmap)));
public static int calculateInSampleSize(
            BitmapFactory.Options options, int reqWidth, int reqHeight) {
        // Raw height and width of image
        final int height = options.outHeight;
        final int width = options.outWidth;
        int inSampleSize = 1;

        if (height > reqHeight || width > reqWidth) {

            // Calculate ratios of height and width to requested height and width
            final int heightRatio = Math.round((float) height / (float) reqHeight);
            final int widthRatio = Math.round((float) width / (float) reqWidth);

            // Choose the smallest ratio as inSampleSize value, this will guarantee
            // a final image with both dimensions larger than or equal to the
            // requested height and width.
            inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
        }

        return inSampleSize;
    }

共有1个答案

阙佐
2023-03-14

答案就在你的问题本身。

Textures with dimensions4096x8192 are larger than the maximum supported size 4096x4096

因此,必须使用任何图像编辑器(如Photoshop)将图像大小减小到4096x4096以下。

如果你不熟悉,这里有一个教程。

 类似资料:
  • 我对mapbox/传单还不熟悉,我认为这是一个相当基本的问题,我在过去两天里一直在努力解决,尽管我已经尝试了几种方法,但我还是无法完全理解。 我正在通过geojson加载标记: 然后尝试根据Geojson数据中使用的标题更改大小或颜色等属性: geojson如下所示: 我错过了什么吗,因为我也试图通过使用 setIcon函数中的某个地方,但似乎没有工作。如果有人能给我指出正确的方向。这真的很合适。

  • 我在视图中使用mapbox,需要从JSON添加多个标记 这是我的JSON 下面是我如何运行脚本添加地图到视图 但是我想知道,我如何需要添加标记到map(对于json中的每个元素,我需要获得lat和lon)来映射。因为医生说我需要这样的Json var Geojson={type:'FeatureCollection',特性:[{type:'Feature',几何:{type:'Point',坐标:

  • 本文向大家介绍Android 加载图像,包括了Android 加载图像的使用技巧和注意事项,需要的朋友参考一下 示例 影像检视 要将图像从指定的URL,Uri,资源ID或任何其他模型加载到ImageView: 对于Uris,请替换yourUrl为您的Uri(content://media/external/images/1)。对于可绘制对象,请替换yourUrl为您的资源ID(R.drawable

  • 这是我写的加载图像图标的代码。你能建议我需要做什么吗,因为我得到一个错误: java.lang.RuntimeException:无法编译的源代码-错误的sym类型:ImageDisplayTest.class.getClassLoader

  • 如何将本地映像添加到IJulia笔记本?图像与IPYNB文件位于同一本地网络文件夹中。通过符号链接访问该文件夹。我尝试了相对和绝对文件名。 两者显示相同,即符号旁边带有“图像测试”的断开图像链接。 Jupyter信息: 朱莉娅信息:

  • 我想在对话框窗口中显示图像(保存在项目文件夹中),但当我运行我的方法showDialogWithImage时,我会得到文件NotFoundException:imgs\pic1。jpg(系统无法找到指定的文件),尽管图像位于那里。 我也尝试过以这种方式加载图像: Image=new Image(getClass(). getResourceAsStream(path));,但遇到了同样的问题。 是