java - 图像显示不正确

标签 java android

我正在制作一个使用惰性列表显示图像和文本的 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

新旧Image的URL是否相同?

如果是这样,则可能是图像缓存的情况。 ImageLoader以URL为key缓存图片....清除App数据后重试。

关于java - 图像显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380573/

相关文章:

java - 找出必填字段以填写pdf文件

Android - 如何决定哪种架构更适合应用程序需求

android - 全屏半透明自定义对话框,忽略触摸并将它们分派(dispatch)到底层 View

java - "NoDefClassNotFound"和 "T cannot not be resolved to a type",在运行时

android - 我在 "A build operation failed"以下收到此错误

java - 如何熟练高效地使用 NetBeans?

java - Netbeans 找不到场景生成器

android - 禁用 Chrome 调试。 Cordova 5.0.0

java - 为什么我来自 Android 的 UDP 消息不起作用?

java - Extract Class Eclipse IDE 重构功能有何用处?