2017-01-07 3 views
0

ユーザーの好みのアプリケーション(Cameta、Galleryなど)から選択してイメージファイルをアップロードする必要があります。 Imageviewに結果のインテントをビットマップとして表示できます。今私はアップロードするボタンをクリックした後のこの画像。私はそれを行うために改造を使用した。 そして私はImagePickerクラスに従って画像を私の画像ビューに集めます。私の質問は、ファイルobejctを取得する方法であるビットマップイメージを改造してサーバーにアップロード

// 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); 

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; 
    } 
} 

:画像コードを収集

このシナリオから、イメージビューを設定した後選択した画像をサーバにアップロードするのは何ですか?

答えて

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);

関連する問題