2013-12-20 3 views
-1

Открываю папку onClick и отправляю изображения через FTP. Но когда размер изображения превышает 2 МБ, я сталкиваюсь с ошибкой при передаче. Поэтому я хочу открыть папку, если у нее есть изображения размером менее 1 МБ, иначе он будет поджарить сообщение для проверки. Является ли этот сценарий возможным, поскольку я новичок в андроиде, пожалуйста, помогите мне.Выберите папку, если размер изображения меньше, чем 1mb android

protected void LoadGalleryImages() { 
final String[] columns = { MediaStore.Images.Media.DATA, 
        MediaStore.Images.Media._ID }; 
      final String orderBy = MediaStore.Images.Media._ID; 
      String foldername=sharedpre.getString("FolderName", ""); 

      imagecursor=managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,MediaStore.Images.Media.DATA + " like ? ", 
        new String[] {"%/"+foldername+"/%"},null);   

      int image_column_index = 0; 

      if (imagecursor != null) { 
       image_column_index = imagecursor 
         .getColumnIndex(MediaStore.Images.Media._ID); 
       count = imagecursor.getCount(); 
      } 

      imgSelected = new String[count]; 

      arrPath = new String[count]; 
      thumbnailsselection = new boolean[count]; 
      for (int i = 0; i < count; i++) { 
       if (imagecursor != null) { 
        imagecursor.moveToPosition(i);     
        int dataColumnIndex = imagecursor 
          .getColumnIndex(MediaStore.Images.Media.DATA); 

        arrPath[i] = imagecursor.getString(dataColumnIndex); 
       } 

ответ

1

С

File [] files = %FOLDER%.listFiles(); 

вы получите файлы каталога. % FOLDER% - это ваш каталог, который вы хотите проверить. Просто перебирайте эти файлы и возвращайте false, если один из них больше одного МБ.

if(files.length > 1048576){ 
    return false; 
} 

Поместите его в метод, передайте папку как аргумент, и это все.

2

вы можете использовать MediaStore.Images.Media.SIZE в вашем managequery и фильтровать для определенного размера, поэтому может получить только те изображения, которые вы требуемые согласно вашему требованию ..

EDIT:

protected void LoadGalleryImages() { 
final String[] columns = { MediaStore.Images.Media.DATA, 
        MediaStore.Images.Media._ID }; 
      final String orderBy = MediaStore.Images.Media._ID; 
      String foldername=sharedpre.getString("FolderName", ""); 

      imagecursor=managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,MediaStore.Images.Media.DATA + " like ? ", 
        new String[] {"%/"+foldername+"/%"},null);   

      int image_column_index = 0; 

      if (imagecursor != null) { 
         String[] sizecolumns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media.SIZE }; 
         Cursor imgcursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, sizecolumns,MediaStore.Images.Media.SIZE + " < ? ", new String[] {"1024"},null); 

       if(imgcursor !=null) { 
         // Your Code 
       } 
      } 

      imgSelected = new String[count]; 

      arrPath = new String[count]; 
      thumbnailsselection = new boolean[count]; 
      for (int i = 0; i < count; i++) { 
       if (imagecursor != null) { 
        imagecursor.moveToPosition(i);     
        int dataColumnIndex = imagecursor 
          .getColumnIndex(MediaStore.Images.Media.DATA); 

        arrPath[i] = imagecursor.getString(dataColumnIndex); 
       } 
+0

Привет, я могу дать запрос, используя его, поскольку я получаю ошибку при попытке – Pooja

+0

@Pooja проверить мой отредактированный ответ .. вы можете использовать это. – Riser

+0

его не работает – Pooja

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