Does the image downloaded from Parse remain on the screen even after exiting and reopening the application?

I have an application that downloads an image from Parse.com and displays this image in an image view

The problem is that whenever I exit the application (using the "Back" button), and the image return disappears.

How can I make the image still?

(For example: when you update your profile on Twitter and leave the application and return your profile, pic will still be displayed)

Any help would be greatly appreciated, it is very important.

MainActivity:

public class MainActivity extends Activity { Button button; private ProgressDialog progressDialog; /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the view from main.xml setContentView(R.layout.activity_main); // Show progress dialog // Locate the button in main.xml button = (Button) findViewById(R.id.button); // Capture button clicks button.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { progressDialog = ProgressDialog.show(MainActivity.this, "", "Downloading Image...", true); // Locate the class table named "ImageUpload" in Parse.com ParseQuery<ParseObject> query = new ParseQuery<ParseObject>( "ImageUploads"); // Locate the objectId from the class query.getInBackground("h3FvFzrHPr", new GetCallback<ParseObject>() { public void done(ParseObject object, ParseException e) { // TODO Auto-generated method stub // Locate the column named "ImageName" and set // the string ParseFile fileObject = (ParseFile) object .get("imageContent"); fileObject .getDataInBackground(new GetDataCallback() { public void done(byte[] data, ParseException e) { if (e == null) { Log.d("test", "We've got data in data."); // Decode the Byte[] into // Bitmap Bitmap bmp = BitmapFactory .decodeByteArray( data, 0, data.length); // Get the ImageView from // main.xml ImageView image = (ImageView) findViewById(R.id.image); // Set the Bitmap into the // ImageView image.setImageBitmap(bmp); // Close progress dialog progressDialog.dismiss(); } else { Log.d("test", "There was a problem downloading the data."); } } }); } }); } }); } } 
0
source share
3 answers

The answer to this question is here: How to create an application that allows you to upload / modify profile loading?

I solved the problems I encountered

0
source

Try using an image library that can handle image caching.

You can try Glide or Picasso .

First add the library to your project. Instead of downloading the file and decrypting it yourself, use the library to download and cache the object for you.

(Glide example) After searching for the object and extracting the parsefile, use Glide:

 ParseFile fileObject = (ParseFile) object.get("imageContent"); String url = fileObject.getUrl(); ImageView image = (ImageView) findViewById(R.id.image); Glide.with(getContext()) .load(url) .into(image); 

The next time you open the application, Glide will search for the object in the cache and, if necessary, retrieve it.

0
source

try this way is better to use BitMap.

 ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("subclass"); query.findInBackground(new FindCallback<ParseObject>() { @Override public void done(List<ParseObject> List, ParseException e) { // TODO Auto-generated method stub if (e == null) { // success if (List.size() > 0) { for (ParseObject parseObject : List) { // here fetch image like.. ParseFile image = (ParseFile) parseObject.get("fieldName"); if (image != null) { Log.e("getting Image", "Image URL " + image.getUrl()); // here add to your adapter array Picasso.with(getApplicationContext()).load(image.getUrl()).fit().into("imageView"); } } // and here call your adapter for fill array data } } else { // e.getMessage() here getting error ... } } }); 
0
source

All Articles