如何使用picasso library
加载图片?
我已经尝试了,但它在我的屏幕上显示force close
。我刚补充一下:
ImageView a = (ImageView)findViewById(R.id.ivImage);
Picasso.with(Home.this).load(TAG_IMAGE).into(a);
在我的onPostExecute()
上,我正在从服务器加载我的图像。
答案 0 :(得分:0)
答案 1 :(得分:0)
创建新类并根据需要为其命名(此处为AlbumList_Adapter.java)
public class AlbumList_Adapter extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;
public ImageLoader imageLoader;
String basePath = "http://example.com/imgFolder/";
public AlbumList_Adapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.list_row_simple, null);
TextView txtListItem = (TextView) vi.findViewById(R.id.txtListItem);
ImageView imageView= (ImageView) vi.findViewById(R.id.imageView);
HashMap<String, String> imgData = new HashMap<String, String>();
imgData = data.get(position);
txtListItem.setText(imgData.get("name"));
Picasso.with(context)
.load(basePath+ imgData.get("image"))
.resize(100, 100)
.centerCrop()
.into(imageView);
return vi;
}
}
在你的code.java文件中,在顶部声明适配器(在onCreate()之前,以便你可以在任何地方使用它)
AlbumList_Adapter adapter;
在json解析后的代码中
ArrayList<HashMap<String, String>> dataList = new ArrayList<HashMap<String, String>>();
// looping through all nodes
for (int i = 0; i < jsonArray.length(); i++) {
jsonObject = jsonArray.getJSONObject(i);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap
map.put("name", jsonObject.getString("albumName"));
map.put("image", jsonObject.getString("albumImage"));
// adding HashMap to ArrayList
dataList.add(map);
}
adapter = new AlbumList_Adapter(codeActivity.this, dataList);
list.setAdapter(adapter);
请注意,我正在使用Hashmap。您应该使用您的数据结构。 (您可以使用Hashmap。然后您必须更新代码)
还有一件事,AlbumList_Adapter.java中的第一行是指我为列表行创建的xml文件。
vi = inflater.inflate(R.layout.list_row_simple, null);
希望这个答案可以帮到你。如果您在实施此问题时遇到问题,请告诉我。
快乐的编码......
答案 2 :(得分:0)
首先,您必须获得Picasso实例
val picasso = Picasso.get()
然后可以加载一行代码。
picasso.load("your url").into(imageView)
作为参考,请点击以下链接-https://www.androidbytes.in/image-loading-in-android-with-picasso/