我创建了照片上传功能。用户可以拍照并从文件中选择照片并将其上传到服务器。
此时照片已成功上传到服务器。但是,当我看到我的应用程序时,它显示的是旧图像。我的应用中的imageview中的图片未更新。我已经听说过用户可以根据需要设置图像的共享优势。
我正在使用Volley库从我的应用程序发布数据以上传照片,并使用Glide库下载并将该照片显示到应用程序中。
我提供了一小部分代码,与照片上传和下载有关。请帮我识别并解决问题。
public void showDialog(){
........
alertButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alert.dismiss();
}
});
alertListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// ListViekw Clicked item index
if (position == 0) {
cameraIntent();
}
else if (position == 1){
galleryIntent();
}
}
});
}
private void galleryIntent()
{
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, "Select File"),SELECT_FILE);
}
public void cameraIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
File cameraFolder;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
cameraFolder = new File(Environment.getExternalStorageDirectory(), "image/");
} else {
cameraFolder = getActivity().getCacheDir();
}
if (!cameraFolder.exists()) {
cameraFolder.mkdirs();
}
String imageFileName = System.currentTimeMillis() + ".jpg";
File photoFile = new File(cameraFolder + imageFileName);
currentPhotoPath = photoFile.getAbsolutePath();
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_CAMERA);
}
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_FILE){
onSelectFromGalleryResult(data);
}
else if (requestCode == REQUEST_CAMERA) {
if (!TextUtils.isEmpty(currentPhotoPath)) {
galleryAddPic();
onCaptureImageResult();
}
}
}
}
private void galleryAddPic() {
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(currentPhotoPath);
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
this.getActivity().sendBroadcast(mediaScanIntent);
}
private void onCaptureImageResult() {
Bitmap bitmap = getBitmapFromPath(currentPhotoPath, 200, 200);
image.setImageBitmap(bitmap);
compressBitMap(bitmap);
}
private void onSelectFromGalleryResult(Intent data) {
...
}
private void compressBitMap(Bitmap bitmap) {
...
}
public static Bitmap getBitmapFromPath(String photoPath, int targetW, int targetH) {
....
}
private void uploadImage(final byte[] bytesArray){
}
}
答案 0 :(得分:0)
图像加载到服务器的一个常见错误是使用相同的URL作为新图像。在这种情况下,滑行将使用它已缓存的上一个图像。 有2个解决方案:
答案 1 :(得分:0)
您已进入列表的第0个位置,因此显示旧图像。