2017-01-07 8 views
0

Мне нужно загрузить файл изображения после выбора из предпочтительного приложения пользователя (Cameta, Gallery и т. Д.). Я могу показать намерение результата в Imageview как растровое изображение. Теперь я хочу загрузить это изображение после нажатия кнопки. Для этого я использовал модификацию. И я следую за классом ImagePicker, чтобы собрать изображение в мое изображение.Загрузить растровое изображение на сервер с модифицированным

Сбор код изображения:

CircleImageView imageViewProfile_Picture; 

public void onPickImage(View view) { 
    Intent chooseImageIntent = ImagePicker.getPickImageIntent(this); 
    startActivityForResult(chooseImageIntent, PICK_IMAGE_ID); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
     case PICK_IMAGE_ID: 
      Bitmap bitmap = ImagePicker.getImageFromResult(this, resultCode, data); 
      // TODO collect picture and show in Imageview 
      imageViewProfile_Picture.setImageBitmap(bitmap); 
      break; 
     default: 
      super.onActivityResult(requestCode, resultCode, data); 
      break; 
    } 
} 

Чтобы загрузить файл на сервер я использую дооснащения библиотека

// How to get the file object from bitmap 

File file=null; 

    RequestBody reqFile = RequestBody.create(MediaType.parse("image/*"), file); 
    MultipartBody.Part body = MultipartBody.Part.createFormData("upload", file.getName(), reqFile); 

интерфейс API

@Multipart 
@POST("/taxiapi/api?") 
Call<SignUpResponse> signup(@Part("user_name") RequestBody user_name, 
          @Part("name") RequestBody name, 
          @Part("password") RequestBody password, 
          @Part("action") RequestBody action, 
          @Part("email") RequestBody email, 
          @Part("phone") RequestBody phone, 
          @Part("icard") RequestBody icard, 
          @Part MultipartBody.Part image, 
          @Part("profile_picture") RequestBody pic_name); 

Мой вопрос, как получить файл obejct из этого сценария, после установки Imageview for m result намерение загрузить выбранное изображение на сервере?

ответ

2

Попробуйте использовать этот

String[] projection = { MediaStore.Images.Media.DATA }; 
Cursor cursor = getActivity().managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null); 
int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
cursor.moveToLast(); 
String photoPath = cursor.getString(column_index_data); 

photoPath будет содержать путь последнего изображения, снятого камерой.

И затем File file = new File(photoPath);

Смежные вопросы