Как выбрать файл изображения с SDCard, а затем, как отправить его на сервер? - PullRequest
1 голос
/ 30 декабря 2011

// ниже

В моем приложении у меня есть кнопка выбрать изображение из SDCard и, нажав ее, я хочу просмотреть все изображения, затем пользователь выберет любое изображениепосле этого выбранный файл изображения будет загружен на сервер.

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

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Вот код, который я использую для запроса MediaStore телефона и возврата объекта курсора, содержащего все изображения.После этого вы можете загрузить их на свой сервер, но я предлагаю вам позаботиться об этой первой части в AsyncTask.

class LoadImagesFromSDCard extends AsyncTask<Object, LoadedImage, Object> {

   //Load images from SDCARD and display
    @Override
    protected Object doInBackground(Object... params) {
        //setProgressBarIndeterminateVisibility(true); 
        Bitmap bitmap = null;
        Bitmap newBitmap = null;
        Uri uri = null;            

        // Set up an array of the Thumbnail Image ID column we want
        String[] projection = {MediaStore.Images.Thumbnails._ID};
        // Create the cursor pointing to the SDCard
        Cursor cursor = managedQuery( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
                projection, // Which columns to return
                null,       // Return all rows
                null,       
                null); 
        int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
        int size = cursor.getCount();
        // If size is 0, there are no images on the SD Card.
        if (size == 0) {
            //No Images available, post some message to the user
        }
        int imageID = 0;
        for (int i = 0; i < size; i++) {
            cursor.moveToPosition(i);
            imageID = cursor.getInt(columnIndex);
            uri = Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, "" + imageID);
            try {
                bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
                if (bitmap != null) {
                    newBitmap = Bitmap.createScaledBitmap(bitmap, 70, 70, true);
                    bitmap.recycle();
                    if (newBitmap != null) {
                        publishProgress(new LoadedImage(newBitmap));
                    }
                }
            } catch (IOException e) {
                //Error fetching image, try to recover
            }
        }
        cursor.close();
        return null;
    }
0 голосов
/ 05 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...