-2
thisのようなURLがあるとします。今私は、アプリケーションのURLの内容を一目でわかりようにしようとしています。下の画像のように:ウェブサイトのURLからコンテンツ(イメージ、タイトルなど)をロードする
次にどのように従うべきですか?私を助けてください。
thisのようなURLがあるとします。今私は、アプリケーションのURLの内容を一目でわかりようにしようとしています。下の画像のように:ウェブサイトのURLからコンテンツ(イメージ、タイトルなど)をロードする
次にどのように従うべきですか?私を助けてください。
WebのURLからコンテンツをダウンロードする必要があります。次に、読み込んだページソースから目的の値を解析する必要があります。
ので、手順は基本的には、次のとおりです。 1.ロードHTML形式のWeb URL 2から今のhtml
からのWeb URLからHTMLをロードするためのステップを自分の価値観を解析します。
static String TAG = "WebRequest";
void getWebAsync(String urlString) {
AsyncHttpClient androidClient = new AsyncHttpClient();
androidClient.get(urlString, new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
Log.e(TAG, "responseString: " + responseString);
}
@Override
public void onSuccess(int statusCode, Header[] headers, String responseToken) {
Log.e(TAG, "Client token: " + responseToken);
handleHtml(responseToken);
}
});
}
受信したhtmlソースを処理する必要があります。ここで
void handleHtml(String htmlCode) {
WebModel webModel = extractAllText(htmlCode);
Log.e("PARSED_MODEL", "Model: " + webModel.toString());
if (webModel.getTilte() != null) {
titleTV.setText(webModel.getTilte());
}
if (webModel.getMainIamgeURL() != null) {
Picasso.with(this)
.load(webModel.getMainIamgeURL())
.error(R.mipmap.ic_launcher)
.into(imageView);
} else {
imageView.setImageResource(R.mipmap.ic_launcher);
}
}
public WebModel extractAllText(String htmlText){
Source source = new Source(htmlText);
String strData = "";
WebModel webModel = new WebModel();
List<Element> elements;
elements = source.getAllElements("title");
String title = elements.get(0).getContent().toString();
webModel.setTilte(title);
elements = source.getAllElements("meta");
for(Element element : elements)
{
final String id = element.getAttributeValue("property"); // Get Attribute 'id'
if(id != null && id.equals("og:image")){
strData = element.getAttributeValue("content");
webModel.setMainIamgeURL(strData);
break;
}
}
return webModel;
}
public class WebModel {
String tilte;
String mainIamgeURL;
public String getTilte() {
return tilte;
}
public String getMainIamgeURL() {
return mainIamgeURL;
}
public void setTilte(String tilte) {
this.tilte = tilte;
}
public void setMainIamgeURL(String mainIamgeURL) {
this.mainIamgeURL = mainIamgeURL;
}
}
2つのライブラリが使用されています: 1. jericho-html-3.4.jar 2. com.loopj.android:android-async-http:1.4.9
まず最初は、htmlページの内容を取得することです(もし望むならそれをダウンロードしてもよい)、次にそれを読者やカスタムリーダーに渡して、画像、ページのタイトル、段落がどこにあるかを見つけて識別し、それらの値を保存する。イメージをイメージビューにダウンロードし、htmlページから取得した値に基づいてテキストを設定します。おそらく最善の方法ではありませんが、それはできます:/ –