Загрузить изображение из встроенной галереи - PullRequest
0 голосов
/ 10 марта 2012

Поскольку у меня нет SD-карты.Я хочу загрузить изображение на сервер, выбрав изображение из встроенной галереи.

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

Любая помощь будет оценена.

1 Ответ

1 голос
/ 10 марта 2012

Вы можете перейти в свою встроенную галерею из следующего кода:

Button btnBrowse = (Button)findViewById(R.id.btn_browse);
    btnBrowse.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent,
              "Select Picture"), SELECT_PICTURE);

}
});

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

public void onActivityResult(int requestCode, int resultCode, Intent data) {
 if (resultCode == RESULT_OK) {
     if (requestCode == SELECT_PICTURE) {
         Uri selectedImageUri = data.getData();
         selectedImagePath = getPath(selectedImageUri);
         EditText imageBrowse = (EditText)findViewById(R.id.thumb_url);
         imageBrowse.setText(selectedImagePath);
         byte[] strBytes = convertToBytes(selectedImagePath);

         imageBytes = strBytes;
     }
 }
}

Метод ConvertToBytes должен быть таким:

public byte[] convertToBytes(String selectedImagePath)
{
 try
 {
  FileInputStream fs = new FileInputStream(selectedImagePath);

  Bitmap bitmap = BitmapFactory.decodeStream(fs);

  ByteArrayOutputStream bOutput = new ByteArrayOutputStream();

  bitmap.compress(CompressFormat.JPEG,1, bOutput);

  byte[] dataImage = bOutput.toByteArray();

  return dataImage;
 }
 catch(NullPointerException ex)
 {
  ex.printStackTrace();
  return null;
 } 
 catch (FileNotFoundException e)
 {    
    e.printStackTrace();
    return null;
 }

}


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

Таким образом, вы можете загрузить изображение.

...