2015-04-22 5 views
0

Я создал приложение для Android, в котором хранятся имя пользователя, телефон, код доступа, широта и долгота на parse.com. Все эти значения хранятся на parse.com успешно, когда я нажимаю на отправить button.here это кодКак загрузить изображение галереи на parse.com в android?

LoginSigupActivity.java

public void onClick(View arg0) { 
 
\t \t \t \t usernametxt = username.getText().toString(); 
 
\t \t \t \t passcodetxt = passcode.getText().toString(); 
 
\t \t \t \t phonetxt = phone.getText().toString(); 
 

 
\t \t \t \t if (usernametxt.equals("") && passcodetxt.equals("")) { 
 
\t \t \t \t \t Toast.makeText(getApplicationContext(), 
 
\t \t \t \t \t \t \t "Please complete the sign up form", 
 
\t \t \t \t \t \t \t Toast.LENGTH_LONG).show(); 
 

 
\t \t \t \t } else { 
 
\t \t \t \t \t // Save new user data into Parse.com Data Storage 
 
\t \t \t \t \t ParseUser user = new ParseUser(); 
 
\t \t \t \t \t user.setUsername(usernametxt); 
 
\t \t \t \t \t user.setPassword(passcodetxt); 
 
\t \t \t \t \t user.put("phone", phone.getText().toString()); 
 
\t \t \t \t \t user.put("passcode", passcode.getText().toString()); 
 
\t \t \t \t \t //user.put("profile_pic", "my profile pic"); 
 

 
\t \t \t \t \t // code to send the current latlong using parse.com 
 
\t \t \t \t \t user.put("latitude", gpsTracker.getLatitude() + ""); 
 
\t \t \t \t \t user.put("longitude", gpsTracker.getLongitude() + ""); 
 
\t \t \t \t \t 
 
\t \t \t \t \t 
 
\t \t \t \t \t user.signUpInBackground(new SignUpCallback() { 
 
\t \t \t \t \t \t public void done(ParseException e) { 
 
\t \t \t \t \t \t \t if (e == null) { 
 

 
\t \t \t \t \t \t \t \t Intent intent = new Intent(
 
\t \t \t \t \t \t \t \t \t \t LoginSignupActivity.this, Welcome.class); 
 
\t \t \t \t \t \t \t \t startActivity(intent); 
 

 
\t \t \t \t \t \t \t \t Toast.makeText(getApplicationContext(), 
 
\t \t \t \t \t \t \t \t \t \t "Successfully Signed up !!!", 
 
\t \t \t \t \t \t \t \t \t \t Toast.LENGTH_LONG).show(); 
 
\t \t \t \t \t \t \t } else { 
 
\t \t \t \t \t \t \t \t Toast.makeText(getApplicationContext(), 
 
\t \t \t \t \t \t \t \t \t \t "Sign up Error", Toast.LENGTH_LONG) 
 
\t \t \t \t \t \t \t \t \t \t .show(); 
 
\t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t } 
 
\t \t \t \t \t }); 
 
\t \t \t \t } 
 

 
\t \t \t } 
 

 
\t \t }); 
 

 
\t } 
 
}

Теперь, когда вторая деятельность открыта здесь я использовал изображение просматривать, вводить кнопку изображения и загружать кнопку изображения. Если щелкнуть изображение изображения с изображением изображения, то получится правильно в представлении изображения, но когда я попытаюсь загрузить его, его не загрузите.

Вот код:

Welcome.java

selectImageButton = (Button) findViewById(R.id.selectImageButton); 
 
\t \t // initlize gps tracker 
 
\t \t gpsTracker = new GPSTracker(this); 
 

 
\t \t String picturePath = PreferenceManager 
 
\t \t \t \t .getDefaultSharedPreferences(this).getString("picturePath", ""); 
 
\t \t if (!picturePath.equals("")) { 
 
\t \t \t ImageView imageView = (ImageView) findViewById(R.id.uploadImage); 
 
\t \t \t imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
 
\t \t } 
 

 
\t \t selectImageButton = (Button) findViewById(R.id.selectImageButton); 
 
\t \t selectImageButton.setOnClickListener(new View.OnClickListener() { 
 
\t \t \t @Override 
 
\t \t \t public void onClick(View arg0) { 
 
\t \t \t \t Intent i = new Intent(
 
\t \t \t \t \t \t Intent.ACTION_PICK, 
 
\t \t \t \t \t \t android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
 
\t \t \t \t startActivityForResult(i, RESULT_LOAD_IMAGE); 
 
\t \t \t } 
 
\t \t }); 
 
\t \t 
 
\t 
 

 
\t uploadButton = (Button) findViewById(R.id.uploadButton); 
 

 
\t \t uploadButton.setOnClickListener(new View.OnClickListener() { 
 
\t \t \t @SuppressWarnings("null") 
 
\t \t \t @Override 
 
\t \t \t public void onClick(View arg0) { 
 
\t \t \t \t 
 
\t \t \t \t ParseUser user = new ParseUser(); 
 
\t \t \t \t Bitmap bitmap = BitmapFactory.decodeFile(imagePath); 
 
\t \t \t \t // Convert it to byte 
 
\t \t \t \t ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
 
\t \t \t \t // Compress image to lower quality scale 1 - 100 
 
\t \t \t \t bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
 
\t \t \t \t byte[] image = stream.toByteArray(); 
 

 
\t \t \t \t // Create the ParseFile 
 
\t \t \t \t ParseFile file = new ParseFile("androidbegin.png", image); 
 
\t \t \t \t // Upload the image into Parse Cloud 
 
\t \t \t \t file.saveInBackground(); 
 

 
\t \t 
 
\t \t \t \t });*/ 
 

 
\t \t \t \t user.signUpInBackground(new SignUpCallback() { 
 
\t \t \t \t \t public void done(ParseException e) { 
 
\t \t \t \t \t \t if (e == null) { 
 
\t \t \t \t \t \t \t Toast.makeText(getApplicationContext(), 
 
\t \t \t \t \t \t \t \t \t "Successfully Signed up !!!", 
 
\t \t \t \t \t \t \t \t \t Toast.LENGTH_LONG).show(); 
 
\t \t \t \t \t \t } else { 
 
\t \t \t \t \t \t \t Toast.makeText(getApplicationContext(), 
 
\t \t \t \t \t \t \t \t \t "Sign up Error", Toast.LENGTH_LONG).show(); 
 
\t \t \t \t \t \t } 
 
\t \t \t \t \t } 
 
\t \t \t \t }); 
 

 
\t \t \t } 
 
\t \t }); 
 

 
\t \t // Retrieve current user from Parse.com 
 
\t \t ParseUser currentUser = ParseUser.getCurrentUser(); 
 
     // Convert currentUser into String 
 
\t \t String struser = currentUser.getUsername().toString(); 
 
     // Locate Button in welcome.xml 
 
\t \t logout = (Button) findViewById(R.id.logout); 
 
     // Logout Button Click Listener 
 
\t \t logout.setOnClickListener(new OnClickListener() { 
 

 
\t \t \t public void onClick(View arg0) { 
 
\t \t \t \t Intent intent = new Intent(Welcome.this, 
 
\t \t \t \t \t \t LoginSignupActivity.class); 
 
\t \t \t \t startActivity(intent); 
 
\t \t \t } 
 
\t \t }); 
 
\t } 
 

 
    
 
    
 
    
 

 
\t @Override 
 
\t protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
 
\t super.onActivityResult(requestCode, resultCode, data); 
 

 
\t \t if (resultCode == RESULT_OK) { 
 

 
\t \t \t Uri selectedImageUri = data.getData(); 
 

 
\t \t \t // GET IMAGE PATH 
 
\t \t \t imagePath = getPath(selectedImageUri); 
 

 
\t \t \t // IMAGE NAME 
 
\t \t \t imageName = imagePath.substring(imagePath.lastIndexOf("/")); 
 

 
\t \t \t // Bitmap bitmap = BitmapFactory.decodeFile(imagePath); 
 
\t \t \t // 
 
\t \t \t // // DISPLAY IMAGE 
 
\t \t \t // imageView.setImageBitmap(bitmap); 
 
\t \t \t // imageLocationTextView.setText("File path :" + imagePath); 
 

 
\t \t } 
 

 
\t } 
 

 
\t private String getPath(Uri uri) { 
 
\t \t String[] projection = { MediaStore.Images.Media.DATA }; 
 
\t \t Cursor cursor = managedQuery(uri, projection, null, null, null); 
 
\t \t int column_index = cursor 
 
\t \t \t \t .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
 
\t \t cursor.moveToFirst(); 
 
\t \t return cursor.getString(column_index); 
 
\t } 
 
}

Теперь я хочу знать, как загрузить выбранное изображение из галереи на parse.com.as мой другой параметр сохраняется при разборе. Я также смущен, потому что я загружаю имя пользователя, код передачи, lat, long и телефон из своего первого действия. но я получаю изображение из галереи во второй активности.

Теперь я хочу знать, как загрузить выбранное изображение в том же классе на parse.com (где сохраняется первый параметр активности). Пользователь - это имя моего класса на parse.com.

Пожалуйста, помогите мне. Любая помощь будет оценена по достоинству.

+0

Где вы хранить файл в parse.com? –

+0

Я сохранил файл под столбцом profile_pic в классе User. –

+0

Где в вашем коде, сообщая parse.com для хранения объекта parsefile в profile_pic? –

ответ

0

Проверьте код ниже, вы получите представление

ParseObject ParseObj = new ParseObject ("YOUR_TABLE_NAME"); 
ParseFile file = new ParseFile("androidbegin.png", image); 
ParseObj.put("profile_pic", file); 
ParseObj.saveInBackground(new SaveCallback() { 
    @Override 
    public void done(ParseException arg0) { 
     if (arg0 == null) { 
      Log.i("LOG_OUTPUT", "Data saved in sever"); 
     } else { 
      Log.e("LOG_OUTPUT", "Data not saved in server"); 

     } 
    } 
}); 
file.saveInBackground(new SaveCallback() { 
    @Override 
    public void done(ParseException arg0) { 
     try { 
      if (arg0 == null) { 
       Log.e("LOG_OUTPUT", "imageFile is saved"); 
      } else { 
       Log.e("LOG_OUTPUT", "imageFile is not saved"); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

}); 
0

Это работает для меня

     imageView1.buildDrawingCache(); 
         Bitmap bitmap =imageView1.getDrawingCache(); 
          ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
          // Compress image to lower quality scale 1 - 
          // 100 
          bitmap.compress(Bitmap.CompressFormat.PNG, 
            100, stream); 
          byte[] image = stream.toByteArray(); 

          // Create the ParseFile 
          ParseFile file = new ParseFile(
            "Profile.png", image); 

          // file.getUrl(); 
          // Upload the image into Parse Cloud 
          file.saveInBackground(); 

          // Create a New Class called "ImageUpload" 
          // in Parse 
          final ParseObject imgupload = new ParseObject(
            "ImageUpload"); 

          // Create a column named "ImageName" and set 
          // the string 
          imgupload.put("ImageName", 
            "Profile Picture"); 

          // Create a column named "ImageFile" and 
          // insert the image 
          imgupload.put("ImageFile", file); 

          // Create the class and the columns 
          imgupload.saveInBackground(); 

          imgupload 
            .saveInBackground(new SaveCallback() { 
             @Override 
             public void done(
               ParseException e) { 
              if (e == null) { 
               // Success! 

               String objectId = imgupload 
                 .getObjectId(); 
               Editor editor = sharedpref_objid 
                 .edit(); 
               editor.putString(
                 "objid", 
                 objectId); 

               Toast.makeText(
                 getApplicationContext(), 
                 objectId, 
                 Toast.LENGTH_SHORT) 
                 .show(); 

               editor.commit(); 

              } else { 
               // Failure! 
              } 
             } 
            }); 
Смежные вопросы