1

以下のコードを使用して、URL( http://www.elifeshopping.com/images/stories/virtuemart/product/thumbnail(2).jpg )からAndroidアプリケーションに画像を読み込もうとしています。BitmapFactory

try {
            // ImageView i = (ImageView)findViewById(R.id.image);
            bitmap = BitmapFactory.decodeStream((InputStream) new URL(url)
                    .getContent());
            i.setImageBitmap(bitmap);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

ここで私は得る

05-03 15:57:13.156: W/System.err(1086): java.net.MalformedURLException: Protocol not found: 9
05-03 15:57:13.167: W/System.err(1086):     at java.net.URL.<init>(URL.java:273)
05-03 15:57:13.167: W/System.err(1086):

at java.net.URL.<init>(URL.java:157).

私が間違っていることを教えてください。

4

3 に答える 3

6

使用しました

productImgUrl = productImgUrl.replaceAll(" ", "%20");

すべてのスペースをに置き換えました%20

そしてそれは私のために働いています..

みなさん、ありがとうございました

于 2012-05-11T10:58:15.887 に答える
2

私が間違っていることを教えてください。

URL問題は、無効なURL文字列を使用してコンストラクターを呼び出していることだと思います。実際、例外メッセージは、URL文字列が「9:」で始まることを意味します。(「プロトコル」コンポーネントは、URLの最初のコロン文字の前の文字のシーケンスです。)

URL文字列が実際に次の場合、これはあまり意味がありません。

「http://www.elifeshopping.com/images/stories/virtuemart/product/thumbnail(2).jpg」

だから私はそれが...実際には...何か他のものであると推測します。コンストラクターを呼び出す前にそれを印刷してURL、それが実際に何であるかを調べてください。

(URLのパスのスペース文字も%エスケープする必要があります...しかし、これでこの特定の例外の化身が修正されるとは思えません。)

于 2012-05-03T13:30:55.777 に答える
0

URLをhttp://www.elifeshopping.com/images/stories/virtuemart/product/thumbnail%20%282%29.jpgに変更します

于 2012-05-03T13:28:13.813 に答える