servidor ruta obtener mostrar imágenes imagen desde cargar almacenada android image parse.com android-drawable

ruta - Cómo cargar una imagen en el servidor de análisis usando parse api en android



mostrar imágenes en listview de android desde servidor (5)

Úselo así

//Convert Bitmap to Byte array --For Saving Image to Parse Db. */ Bitmap profileImage= "your bitmap"; ByteArrayOutputStream blob = new ByteArrayOutputStream(); profileImage.compress(CompressFormat.PNG, 0 /* ignored for PNG */,blob); imgArray = blob.toByteArray(); //Assign Byte array to ParseFile parseImagefile = new ParseFile("profile_pic.png", imgArray); parseUser.getCurrentUser().put("columname in parse db", parseImagefile); parseUser.getCurrentUser().saveInBackground();

Espero que esto ayude..

Quiero subir una imagen en el servidor de nube parse en Android. Pero no puedo hacerlo.

He intentado con el siguiente código:

Drawable drawable = getResources().getDrawable(R.drawable.profilepic) ; Bitmap bitmap = (Bitmap)(Bitmap)drawable() ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] data = stream.toByteArray(); ParseFile imageFile = new ParseFile("image.png", data); imageFile.saveInBackground();

Por favor, hágame saber cómo puedo hacerlo.

He añadido una recompensa para encontrar el mejor código definitivo para este problema común


Después de luchar durante varias horas aquí, el segmento de código funciona para mí.

1. Miembro de datos de la clase de actividad

Bitmap bmp; Intent i; Uri BmpFileName = null;

2. Iniciando la cámara. El objetivo es iniciar la actividad de la cámara y BmpFileName para almacenar la referencia al archivo

String storageState = Environment.getExternalStorageState(); if (storageState.equals(Environment.MEDIA_MOUNTED)) { String path = Environment.getExternalStorageDirectory().getName() + File.separatorChar + "Android/data/" + this.getPackageName() + "/files/" + "Doc1" + ".jpg"; File photoFile = new File(path); try { if (photoFile.exists() == false) { photoFile.getParentFile().mkdirs(); photoFile.createNewFile(); } } catch (IOException e) { Log.e("DocumentActivity", "Could not create file.", e); } Log.i("DocumentActivity", path); BmpFileName = Uri.fromFile(photoFile); i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); i.putExtra(MediaStore.EXTRA_OUTPUT, BmpFileName); startActivityForResult(i, 0);

3. Leer los contenidos de la salida de la cámara anulando en el resultado de la actividad. El objetivo es obtener una valoración de bmp variable.

protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { try { bmp = MediaStore.Images.Media.getBitmap( this.getContentResolver(), BmpFileName); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Myocode to display image on UI - You can ignore if (bmp != null) IV.setImageBitmap(bmp); } }

4. En el evento Guardar

// MUST ENSURE THAT YOU INITIALIZE PARSE Parse.initialize(mContext, "Key1", "Key2"); ParseObject pObj = null; ParseFile pFile = null ; pObj = new ParseObject ("Document"); pObj.put("Notes", "Some Value"); // Ensure bmp has value if (bmp == null || BmpFileName == null) { Log.d ("Error" , "Problem with image" return; } ByteArrayOutputStream stream = new ByteArrayOutputStream(); bmp.compress(CompressFormat.PNG, 100, stream); pFile = new ParseFile("DocImage.jpg", stream.toByteArray()); try { pFile.save(); pObj.put("FileName", pFile); pObj.save(); _mParse.DisplayMessage("Image Saved"); } catch (ParseException e) { // TODO Auto-generated catch block _mParse.DisplayMessage("Error in saving image"); e.printStackTrace(); }

// Terminar la actividad en mi caso. puedes elegir algo más para terminar ();

Así que aquí están las diferencias clave de los demás

  • Llamé a initialize parse. Puede que se rían de eso, pero la gente ha gastado el código de depuración de una hora sin darse cuenta de que no se inicializó el análisis
  • Use Guardar en lugar de GuardarInvamento. Entiendo que puede contener la actividad, pero ese es el comportamiento deseado para mí y, lo que es más importante, funciona

Avísame si no funciona


Guarde ParseObject en el fondo

// ParseObject ParseObject pObject = new ParseObject("ExampleObject"); pObject.put("myNumber", number); pObject.put("myString", name); pObject.saveInBackground(); // asynchronous, no callback

Guardar en el fondo con devolución de llamada

pObject.saveInBackground(new SaveCallback () { @Override public void done(ParseException ex) { if (ex == null) { isSaved = true; } else { // Failed isSaved = false; } } });

Las variaciones del método save ... () incluyen lo siguiente:

saveAllinBackground() saves a ParseObject with or without a callback. saveAll(List<ParseObject> objects) saves a list of ParseObjects. saveAllinBackground(List<ParseObject> objects) saves a list of ParseObjects in the background. saveEventually() lets you save a data object to the server at some point in the future; use this method if the Parse cloud is not currently accessible.

Una vez que un ParseObject se ha guardado con éxito en la nube, se le asigna un único Object-ID. Este Object-ID es muy importante ya que identifica de manera única esa instancia de ParseObject. Utilizaría el Object-ID, por ejemplo, para determinar si el objeto se guardó correctamente en la nube, para recuperar y actualizar una instancia de objeto Parse determinada, y para eliminar un ParseObject en particular.

Espero que resuelvas tu problema ...


Código simple de Imageupload y retriving usando Glide para analizar.

Carga de imagen

destination_profile es el objeto de archivo del que desea cargar la ruta de la imagen.

ParseUser currentUser = ParseUser.getCurrentUser(); if (destination_profile != null) { Glide.with(getActivity()).load(destination_profile.getAbsolutePath()).asBitmap().toBytes().centerCrop().into(new SimpleTarget<byte[]>() { @Override public void onResourceReady(byte[] resource, GlideAnimation<? super byte[]> glideAnimation) { final ParseFile parseFile = new ParseFile(destination_profile.getName(), resource); parseFile.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { currentUser.put("picture", parseFile); currentUser.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { showToast("Profile image upload success"); } }); } }); } }); }

Recuperación de imagen

img_userProfilePicture_bg es un boject de ImageView donde desea establecer la imagen.

ParseUser currentUser = ParseUser.getCurrentUser(); if (currentUser.has("picture")) { ParseFile imageFile = (ParseFile) currentUser.get("picture"); imageFile.getDataInBackground(new GetDataCallback() { public void done(final byte[] data, ParseException e) { if (e == null) { Glide.with(getActivity()).load(data).centerCrop().into(img_userProfilePicture_bg); } else { // something went wrong } } }); }


Parse.initialize(this, "applicationId", "clientKey"); byte[] data = "Sample".getBytes(); //data of your image file comes here final ParseFile file = new ParseFile(data); try { file.save(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (file.isDirty()){ //exception or error message etc } else{ try { ParseUser.logIn("username", "password"); //skip this if already logged in } catch (ParseException e2) { e2.printStackTrace(); } ParseObject userDisplayImage = new ParseObject("UserDisplayImage"); user = ParseUser.getCurrentUser(); userDisplayImage.put("user", user); //The logged in User userDisplayImage.put("displayImage", file); //The image saved previously try { userDisplayImage.save(); //image and user object saved in a new table. Check data browser } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } //See how to retrieve ParseQuery query = new ParseQuery("UserDisplayImage"); query.whereEqualTo("user", user); try { parseObject = query.getFirst(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } ParseFile imageFile = null; imageFile = parseObject.getParseFile("displayImage"); try { byte[] imgData = imageFile.getData(); //your image data!! } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }