-1

フォルダー onClick を開き、FTP 経由で画像を送信しています。しかし、画像のサイズが 2MB を超えると、送信エラーが発生します。したがって、サイズが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);
                }
4

2 に答える 2

2

管理クエリでMediaStore.Images.Media.SIZEを使用し、特定のサイズでフィルター処理することができるため、要件に応じて必要な画像のみを取得できます..

編集 :

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);
                }
于 2013-12-20T12:10:31.807 に答える