java – 图像显示不正确

我正在制作一个使用lazylist显示图像和文本的 Android应用程序.

我从服务器的json获取数据.当我手动将一些数据和图像路径输入到MysqL数据库中时,这些图像会在应用程序中正确显示.

但是当我从移动摄像头拍摄图像并上传该图像时,它会在MysqL数据库中正确插入路径,但它不会显示在我的应用程序中.

有人能告诉我为什么会遇到这个问题吗?我的logcat中没有出错.

有其他人有这个问题吗?如果是,那么你是如何解决的?请帮我.

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

    inBoxList = 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("InBox JSON: ",json.toString());

    try {
        data = json.getJSONArray("data");
        Log.d("inBox 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
            inBoxList.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();
    }

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

这是懒惰的适配器类

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;
}
}

解决方法

But when I take image from mobile camera and upload that image,it does insert all the path properly in MysqL database but it is still not shown in my app

新图像和旧图像的URL是否相同?

如果是这样,则可能是图像缓存的情况. ImageLoader使用URL作为密钥缓存图像….清除App数据后再试一次.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...