2012-03-21 15 views
0

Iv'eは、Html.fromHtml()でImageGetter()インターフェイスを使用して、長いhtml文字列からイメージURLを取得しています。しかし、私は本当に一つのイメージしか必要としないので、私はString全体を見渡してイメージを探したくありません。最初の画像を見つけたら、私はただ止めたいです。Html.ImageGetterで1つのイメージのみを取得しますか?

提案がありますか?

Html.fromHtml(html, new ImageGetter() { 
    @Override 
    public Drawable getDrawable(String source) { 
     item.setImageUrl(source); 
     return null; 
    } 
}, null); 

EDIT:今のところ、ImageGetterはそのイメージのみを取得できるように、htmlストリングの最後のイメージを取得します。

プライベート文字列getLastImage(文字列htmlContent){

String img = ""; 
    try{ 
    img = htmlContent.substring(htmlContent.lastIndexOf("<img"));  
    }catch (Exception e) { 
    e.printStackTrace(); 
    } 
    return img; 
} 

答えて

0

はあなたのImageGetterでブール型のフィールドを持っています。 getDrawable()の場合、ブール値がfalseの場合にのみイメージをフェッチし、trueに設定します。そうでない場合はnullを返します。

残りのHTMLの解析を完全に回避するには、Html.fromHtml()を使用できません。代わりにXMLPullParserを試してみてください。 <img>タグが得られるまでタグを引っ張ってください。その時点で<src>属性の値が得られます。

しかし、厳密なXHTMLではない入力を適切に処理する必要があるかもしれません。

+0

お返事ありがとうございます。私はその方法を試してみましたが、イメージを設定するのにうまくいきますが、ImageGetterはHtml String全体を実行してイメージを探します(nullを返すだけであっても)。 – Slickelito

+0

@NiklasBjörkholm、私の答えを編集しました。 –

+0

それは私が推測する方法の1つですが、今のところ、最後の画像部分(利用可能な場合)のみを取得するようにhtml Stringを短縮する方法がありました。 – Slickelito

関連する問題