gpt4 book ai didi

android - 如何在 Android 中从 JSON url 解析图像?

转载 作者:行者123 更新时间:2023-11-29 18:04:57 24 4
gpt4 key购买 nike

Image

我正在解析来自 Wordpress 博客的内容。我不知道如何从 JSON 获取图像.这是图片网址 "content":"<p><img class=\"aligncenter\" style=\"cursor: -moz-zoom-in;\" src=\"http:\/\/sphotos-h.ak.fbcdn.net\/hphotos-ak-ash4\/395050_10151219612828815_5123523_n.jpg\" alt=\"http:\/\/sphotos-h.ak.fbcdn.net\/hphotos-ak-ash4\/395050_10151219612828815_5123523_n.jpg\" width=\"390\" height=\"466\" \/><\/p>\n<p><span id=\"more-5267\"><\/span><\/p>\n<p>Some texts here...XXXXXYYYYYZZZZ"

HttpClient client;
HttpGet get;
HttpResponse res;
HttpEntity ent;
Button b;
TextView tv1,tv2,tv3;
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Typeface tp=Typeface.createFromAsset(getAssets(), "AftaSansThin-Regular.otf");
StrictMode.enableDefaults();
b = (Button) findViewById(R.id.button1);
tv1 = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
tv3 = (TextView) findViewById(R.id.textView3);
tv1.setTypeface(tp);
tv2.setTypeface(tp);
tv3.setTypeface(tp);
client = new DefaultHttpClient();
get = new HttpGet("http://example.com");
b.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
res=client.execute(get);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ent=res.getEntity();
InputStream is = null;
try {
is=ent.getContent();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
String line = null;
do{
try {
line = br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sb.append(line);
} while (line!=null);
String str = sb.toString();

try {
JSONObject ob1 = new JSONObject(str);
JSONObject ob2 = ob1.getJSONObject("post");
String title = ob2.getString("title");
String date = ob2.getString("date");
String content = ob2.getString("content");



tv1.setText(title);
tv2.setText(date);
Spanned marked_up = Html.fromHtml(content);
tv3.setText(marked_up.toString(),BufferType.SPANNABLE);

} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}

最佳答案

首先,这不是一个有效的图像 Url -\"http://sphotos-h.ak.fbcdn.net/hphotos-ak-ash4/395050_10151219612828815_5123523_n.jpg\"更接近你想要的,但仍然有所有转义字符。

如果您可以让 JSON 数据包将 URL 作为字符串发送,效率会高得多。如果不对其进行配置,使其不会转义所有字符,则从返回的文本中删除 Url。

接下来,我要做的是在 AsyncTask 中启动一个 http 连接并获取一个输入流。使用 BitmapFactory.decodeStream(HttpInputStream) 将流转换为位图,然后将位图返回给 UI 线程 onPostExecute。

如果您要处理许多图像下载,您可能需要考虑一个开源库或编写一个 AsyncImageLoader

希望这有帮助:)

关于android - 如何在 Android 中从 JSON url 解析图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com