Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Sk8erBoi
1 / 1 / 0
Регистрация: 15.12.2010
Сообщений: 39
#1

Не отображаются фотографии по папкам - Программирование Android

11.06.2014, 11:20. Просмотров 495. Ответов 0
Метки нет (Все метки)

Добрый день. Я пытаюсь отобразить список папок (в которых есть фотографии) и при нажатии на них отобразить фотографии которые в них находятся. Я знаю что надо использовать запрос selection, но у меня не получается его реализовать.
Вот мой первый класс для отображения папок:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class ThumbnailAdapter extends BaseAdapter {
    
    // Context required for performing queries
    private final Context mContext;
    
    // Cursor for thumbnails
    private final Cursor cursor;
    private final int imgId;
    private final int imgData;
    private final int count;
    
    public ThumbnailAdapter(Context c) {
        this.mContext = c;
        
        // Get list of all images, sorted by last taken first
        final String[] projection = {
                MediaStore.Images.Media.BUCKET_ID,
                MediaStore.Images.Media.BUCKET_DISPLAY_NAME
        };
         String BUCKET_GROUP_BY =
                    "1) GROUP BY 1,(2";
            String BUCKET_ORDER_BY = "MAX(datetaken) DESC";
        cursor = mContext.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection,
                BUCKET_GROUP_BY,
                null,
                BUCKET_ORDER_BY
                
        );
        
        // Set constants (column indices and image count)
        imgId = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_ID);
        imgData = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
        count = cursor.getCount();
        Log.d("ThumbnailAdapter", count + " images found");
    }
 
    @Override
    public int getCount() {
        return count;
    }
 
    @Override
    public Object getItem(int position) {
        return position;
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LinearLayout ll = new LinearLayout(mContext);
          
          ImageView imageView = new ImageView(mContext);
          TextView mytext = new TextView(mContext);
          cursor.moveToPosition(position);
        
          
          mytext.setText(cursor.getString(cursor.getColumnIndex(Media.BUCKET_ID)));
          
          imageView.setImageResource(R.drawable.your_folder_icon);
          ll.addView(imageView);
          ll.addView(mytext);
          
 
      
      return ll;
    }
    
    /**
     * Get the image path from the given position
     * @param position
     * @return
     */
    public String getImagePath(int position) {
        cursor.moveToPosition(position);
        return cursor.getString(imgData);
    }
 
}
А вот второй который запускается при onClick на папку
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
public class Th extends BaseAdapter {
    
    // Context required for performing queries
    private final Context mContext;
    
    // Cursor for thumbnails
    private final Cursor cursor;
    private final int imgId;
    private final int imgData;
    private final int count;
    private final int imgD;
    
    public Th(Context c) {
        this.mContext = c;
        
        // Get list of all images, sorted by last taken first
        final String[] projection = {
                MediaStore.Images.Media._ID,
                MediaStore.Images.Media.DATA,
                MediaStore.Images.Media.BUCKET_ID
                
        };
        
    
        cursor = mContext.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection,
                null,
                null,
                MediaStore.Images.Media.DATE_TAKEN + " DESC"
        );
        imgId = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
        imgData = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        imgD = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_ID);
        
        count = cursor.getCount();
        Log.d("ThumbnailAdapter", count + " images found");
    
        
    }
    @Override
    public int getCount() {
        return count;
    }
    @Override
    public Object getItem(int position) {
        return position;
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        
        if (convertView == null) {  // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            //imageView.setLayoutParams(new GridView.LayoutParams(96, 96));
            //imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            //imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }
        cursor.moveToPosition(position);
        final Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(
                mContext.getContentResolver(),
                cursor.getInt(imgData), 
                MediaStore.Images.Thumbnails.MICRO_KIND,
                null
        );
        imageView.setImageBitmap(thumbnail);
        Log.d("ThumbnailAdapter", "render: " + cursor.getString(imgData));
        
        return imageView;
      
    
    }
 
    public String getImagePath(int position) {
        cursor.moveToPosition(position);
        return cursor.getString(imgData);
    }
    public void remove(int position) {
        remove(position);
        notifyDataSetChanged();
 
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 11:20     Не отображаются фотографии по папкам
Посмотрите здесь:

Доступ к папкам ANDROID - Программирование Android
Почему при обращение к некоторым папкам в Android у меня вылетает ошибка?! Я так понимаю к этим папкам доступ запрещен! Подскажите, как...

Доступ к системным папкам Android - Программирование Android
Нужно скопировать файл из директории /system/bin/, и разрешить редактировать некоторые файлы /data/misc/wifi , как это сделать? Не...

Как поменять пути к папкам AndroidStudio? - Программирование Android
Android Studio, всё работает, проблем нет. Только в папке "Мои документы" создались андроидные папки .AndroidStudio .android ...

Как сгруппировать XML файлы по папкам? - Программирование Android
При создании приложения получилось много XML файлов, в основном все файлы View элементов например - пункт списка, layout файлы, файлы...

Сканер фотографии - Программирование Android
Добрый день, появилась такая вот задачка, и не смог найти ответа в гугле, решил спросить здесь, может кто сталкивался с этим. Необходимо...

Распознавание текста с фотографии - Программирование Android
как можно распознать текст на фотографии с камеры. алгоритм, готовая реализация, чего нибудь почитать и т.д. где искать

Задать качество фотографии - Программирование Android
Добрый вечер! Подскажите, пожалуйста, как сохранить фотографию в определенном качестве и формате? Пишу свою камеру и не могу найти на...

Прикрепление к письму фотографии из камеры - Программирование Android
В приложении есть три текстовых поля EditText: электронный адрес, тема письма, сам текст. По нажатию кнопки ниже письмо с помощью...

Android, отправка фотографии на сервер - Программирование Android
Мне нужно отправить файл на сервер. После выбора фотографии в галереи мы вызываем данный метод, которому передаем файл: public static...

Как отобразить папки, содержащие фотографии? - Программирование Android
Всем привет. Пытаюсь создать аналог галереи на android. Для этого мне нужно найти все фотографии(включая папки в которых они находятся) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru