gpt4 book ai didi

android - 无法在 ListView 中显示图像

转载 作者:行者123 更新时间:2023-11-30 03:41:15 24 4
gpt4 key购买 nike

我无法显示图片,但可以显示文字。

我修改了 http://mobile.dzone.com/news/android-tutorial-how-parse 的代码到下面的代码。

我宁愿只使用 SimpleAdapter。这可能吗?因为我在任何地方都实现了与下面相同的代码。

或者对下面的代码稍作修改就可以了。

如何显示图像?

public class MainActivity extends ListActivity {

ArrayList<HashMap<String, String>> mylist;
SimpleAdapter adapter;

ProgressDialog pd ;
ListView lv;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listplaceholder);


mylist = new ArrayList<HashMap<String, String>>();

new loadingDisplayClass().execute();
}

public class loadingDisplayClass extends AsyncTask<String, Integer, String> {

protected void onPreExecute() {
pd = new ProgressDialog(MainActivity.this);
pd.setTitle("Loading......");
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.show();

}

@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub

String url = "https://itunes.apple.com/us/rss/topalbums/limit=50/json";

JSONObject json = JSONfunctions.getJSONfromURL(url);


try {
JSONObject arr2 = json.getJSONObject("feed");
JSONArray arr = arr2.getJSONArray("entry");

for (int i = 0; i < arr.length(); i++) {
JSONObject e1 = arr.getJSONObject(i);

JSONArray jsar = e1.getJSONArray("im:image");

JSONObject jsname = e1.getJSONObject("im:name");
String name = jsname.getString("label");


JSONObject jso = e1.getJSONObject("im:artist");
String lbl = jso.getString("label");

JSONObject e12 = jsar.getJSONObject(0);

String icon = e12.getString("label");


HashMap<String, String> hashmapnew = new HashMap<String, String>();


hashmapnew.put("icons", icon);

hashmapnew.put("name", name);
hashmapnew.put("artist", lbl);

mylist.add(hashmapnew);

publishProgress(((int) ((i + 1 / (float) arr.length()) * 100)));


}

} catch (JSONException e) {

Toast.makeText(getBaseContext(),
"Network communication error!", 5).show();
}

adapter = new SimpleAdapter(getBaseContext(), mylist,
R.layout.list, new String[] {
"icons","name","artist" },
new int[] { R.id.image,R.id.name,R.id.artist });

return null;
}

protected void onProgressUpdate(Integer... integers) {

pd.incrementProgressBy(integers[0]);

}

@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);


setListAdapter(adapter);


pd.dismiss();

lv = getListView();

lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>) lv
.getItemAtPosition(position);


}
});
}

}




}

最佳答案

I am unable to display images but the text is displayed

图片不会显示,因为您只是将 url 传递给 SimpleAdapter。为了显示图片,您需要先下载上述服务返回的 url 中的图片。

您需要创建一个自定义的 Adapter 并通过下载它们来显示图像

下载每张图片并在 imageView 中显示图片需要花费大量时间,并且作为 ListView 回收 View ,您的图片将始终在列表滚动时下载。所以你需要做的就是使用 -Universal-Image-LoaderLazy List提供自动下载和缓存图像。

关于android - 无法在 ListView 中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700579/

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