Java – incorrect image display

I'm making an Android application that uses lazylist to display images and text

I get data from the server's JSON When I manually input some data and image paths into MySQL database, these images will be displayed correctly in the application

However, when I take an image from a mobile camera and upload it, it will insert the path correctly in the MySQL database, but it will not be displayed in my application

Can someone tell me why I have this problem? There is no error in my logcat

Does anyone else have this problem? If so, how did you solve it? Please help me

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_list);

    in@R_622_2419@List = new ArrayList<HashMap<String,String>>();

    List<String> profile_photo = new ArrayList<String>();
    List<String> userName = new ArrayList<String>();
    List<String> place = new ArrayList<String>();

    list=(ListView)findViewById(R.id.list);
    //adapter=new LazyAdapter(this,tS,mTitles);
    list.setAdapter(adapter);

    /********************************/

    JSONObject json = userFunctions.homeData();

    Log.e("Data",json.toString());

    // Check your log cat for JSON reponse
    // Log.d("In@R_622_2419@ JSON: ",json.toString());

    try {
        data = json.getJSONArray("data");
        Log.d("in@R_622_2419@ array: ",data.toString());
        // looping through All messages
        for (int i = 0; i < data.length(); i++) {
            JSONObject c = data.getJSONObject(i);

            // Storing each json item in variable
            String uid = c.getString("uid");
            String name = c.getString("name");
            String success = c.getString("success");
            String profile_img = c.getString("profile_photo");
            //String date = c.getString(TAG_DATE);

            JSONObject places = c.getJSONObject(TAG_PLACES);
            String place_photo = places.getString(TAG_PLACE_IMG);

            Log.e("place_photo",place_photo);
            // creating new HashMap
            HashMap<String,String> map = new HashMap<String,String>();

            // adding each child node to HashMap key => value
            map.put("uid",uid);
            map.put("name",name);
            map.put("success",success);
            map.put("profile_image",profile_img);

            profile_photo.add(profile_img);
            userName.add(name);
            place.add(place_photo);
            // adding HashList to ArrayList
            in@R_622_2419@List.add(map);
        }

        profile_image = new String[profile_photo.size()];
        user_name = new String[userName.size()];
        place_image = new String[(place.size())];

        profile_photo.toArray(profile_image);
        userName.toArray(user_name);
        place.toArray(place_image);
        adapter = new LazyAdapter(this,profile_image,user_name,place_image);
        list.setAdapter(adapter);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    /*******************************/
}

This is a lazy adapter class

public class LazyAdapter extends BaseAdapter {

private Activity activity;
private String[] data;
private String[] name;
private String[] place_photo;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader; 

public LazyAdapter(Activity a,String[] d,String[] username,String[] place_image) {
    activity = a;
    data = d;
    name = username;
    place_photo = place_image;
    //Log.e("path",d.toString());
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    imageLoader=new ImageLoader(activity.getApplicationContext());
}

public int getCount() {
    return data.length;
}

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.home_list_item,null);

    //TextView text=(TextView)vi.findViewById(R.id.text);
    TextView title = (TextView)vi.findViewById(R.id.username);
    ImageView image=(ImageView)vi.findViewById(R.id.image);
    ImageView place=(ImageView)vi.findViewById(R.id.place);
    //text.setText("item "+position);
    title.setText(name[position]);
    imageLoader.DisplayImage(data[position],image);
    imageLoader.DisplayImage(place_photo[position],place);
    return vi;
}
}

Solution

Are the URLs of the new and old images the same?

If so, it may be the case of image caching Imageloader caches images using URLs as keys Clear app data and try again

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>