如何在Here Map SDK中从URL设置标记图像

时间:2019-06-20 05:35:12

标签: java android here-api

我正在使用此处的地图SDK在地图上设置标记(服务器会提供更多标记) SDK提供了多种方法来从可绘制的,本地字符串,文件和资产中设置标记图像,但是没有从URL到标记图像的方法,我尝试先将图像从URL转换为位图,然后使用SDK方法setBitmap,但它给了我错误“提供的图像无效” 您能在这件事上帮助我吗

尝试将图像设置为位图,但显示错误,前提是图像无效

private class AsyncTaskLoadImage extends AsyncTask<String, String, Bitmap> {
        @Override
        protected Bitmap doInBackground(String... params) {
            Bitmap bitmap = null;
            try {
                URL url = new URL(params[0]);
                bitmap = BitmapFactory.decodeStream((InputStream) url.getContent());
            } catch (IOException e) {
                Log.i(">>stat", "doInBackground: ");
            }
            return bitmap;
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            try {
                myImage.setBitmap(bitmap);
            } catch (Exception e) {
                Toast.makeText(CustomerHomeDashboardActivity.this, "Cannot"+e.getMessage(), Toast.LENGTH_SHORT).show();
            }

        }
    }`

应将预期结果添加到地图中 因为我已经将该功能用于其他可绘制到URL的URL图片进行了测试,

下面的

是我用来将服务器的图像URL转换为位图,然后将其设置为mImage.setBitmap(CONVERTED_BITMAP)的方法,该方法是从服务器的URL中接收的图像可以是JPEG或PNG,但是无论我使用哪种格式出现相同的错误“提供的图片无效”

com.here.android.mpa.common.Image myImage;

 private class AsyncTaskLoadImage extends AsyncTask<String, String, Bitmap> {
    @Override
    protected Bitmap doInBackground(String... params) {
        Bitmap bitmap = null;
        try {
            URL url = new URL(params[0]);
            bitmap = BitmapFactory.decodeStream((InputStream) url.getContent());

        } catch (IOException e) {
            Log.i(">>stat", "doInBackground: ");
        }
        return bitmap;
    }
}

0 个答案:

没有答案