0

これが私が地図にマーカーを追加する方法です

map.addMarker(new MarkerOptions()
                    .position(model.getLatLongfromService())
                    .title(model.getCoupon_name())
                    .snippet(model.getCoupon_id())
                    .icon(BitmapDescriptorFactory.fromFile(DataHolder.imageUrl
                            + model.getCoupon_image())));
  • この形式でcoupon_imageを取得しています: http ://www.xyz.com/coupon21.jpg **

  • アプリを実行すると、このエラーが発生します。

java.lang.IllegalArgumentException:ファイルhttp://test.xyz.de/uploads/company_logo/sample-logo-110x60.jpgにパス区切り文字が含まれています

誰かが私が問題が何であるかを理解するのを手伝ってもらえますか?

ありがとう、Rakesh

4

1 に答える 1

0

問題は、メソッド BitmapDescriptorFactory.fromFile が、ロードするファイル (画像) の名前を表すパラメーター String fileName を使用していることだと思います。代わりに、画像の http URL ( http://test.xyz.de/uploads/company_logo/sample-logo-110x60.jpg ) を指定します。

おそらく、最初に画像をダウンロードしてから、BitmapDescriptorFactory.fromBitmap; を使用する必要があります。

編集: 画像をダウンロードするには、次のような AsyncTask を使用できます。

    AsyncTask<String, Void, Bitmap> loadImageTask = new AsyncTask<String, Void, Bitmap>(){
        @Override
        protected Bitmap doInBackground(String... params) {
            Bitmap bmImg = null;
            try { 
                URL url = new URL(params[0]);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();   
                conn.setDoInput(true);   
                conn.connect();     
                InputStream is = conn.getInputStream();
                bmImg = BitmapFactory.decodeStream(is); 
            }
            catch (IOException e)
            {       
                e.printStackTrace(); 
                bmImg = null;
            }

            return bmImg; 
        }

        @Override
        protected void onPostExecute(Bitmap result) {
            super.onPostExecute(result);
            // TODO: do what you need with resulting bitmap - add marker to map
        }
    };

次に、適切なパラメータで asynctask を実行することを忘れないでください - ダウンロードする画像の URL を含む文字列配列:

loadImageTask.execute(new String[]{yourImageUrl});
于 2013-03-21T13:55:27.603 に答える