Android Open Source - filemanager Thumbnail Loader Helper






From Project

Back to project page filemanager.

License

The source code is released under:

MIT License

If you think the Android project filemanager listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * The MIT License (MIT)//w w  w  .  j av  a 2 s.c om
 *
 * Copyright 2014 Binkery Huang <binkery@gmail.com>
 *
 * Oct 31, 2014
 */
package com.binkery.app.filemanager.fragments;

import java.io.File;

import com.binkery.app.filemanager.utils.Logs;

import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.media.ThumbnailUtils;
import android.os.Environment;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;


public class ThumbnailLoaderHelper {

    private static final String TAG = ThumbnailLoaderHelper.class
            .getSimpleName();

    private static String getUserID() {
        String path = Environment.getExternalStorageDirectory()
                .getAbsolutePath();
        Logs.i(TAG, "path = " + path);
        int index = path.lastIndexOf(File.separator);
        String num = path.substring(index + 1);
        return num;
    }

    public static Bitmap getImageThumbnail(File file, Context context) {
        if (file == null || !file.exists()) {
            return null;
        }

        String finalPath = file.getAbsolutePath();
        try {
            finalPath = file.getCanonicalPath();
            Logs.i(TAG, "canonical path = " + finalPath);
            if (finalPath.indexOf("legacy") != -1) {
                String id = getUserID();
                finalPath = finalPath.replace("legacy", id);
            }
        } catch (Exception e) {

        }
//        if (MimeTypeUtils.isImage(file.getName())) {
//            return loadImageThumbnail(finalPath, context);
//        } else if (MimeTypeUtils.isVideo(file.getName())) {
//            return loadVideThumbnail(finalPath, context);
//        }
        return null;
    }

    private static final Bitmap loadVideThumbnail(String path, Context context) {
        return ThumbnailUtils.createVideoThumbnail(path,
                Images.Thumbnails.MINI_KIND);
    }

    private static final Bitmap loadImageThumbnail(String path, Context context) {
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Media._ID },
                MediaStore.Images.Media.DATA + " = ? ", new String[] { path },
                null);
        if (cursor == null) {
            Logs.i(TAG, "cursor is null 1");
            return null;
        }
        if (!cursor.moveToFirst()) {
            cursor.close();
            Logs.i(TAG, "cursor is empty 1");
            return null;
        }
        int imageId = cursor.getInt(cursor
                .getColumnIndex(MediaStore.Images.Media._ID));
        Logs.i(TAG, "image id = " + imageId);
        cursor.close();
        Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(
                context.getContentResolver(), imageId,
                MediaStore.Images.Thumbnails.MINI_KIND, null);
        bitmap = ThumbnailUtils.extractThumbnail(bitmap, 96, 96,
                ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
        return bitmap;
    }

}




Java Source Code List

com.binkery.app.filemanager.BaseFragment.java
com.binkery.app.filemanager.FragmentController.java
com.binkery.app.filemanager.MainActivity.java
com.binkery.app.filemanager.SlidingMenuController.java
com.binkery.app.filemanager.commons.Constants.java
com.binkery.app.filemanager.fragments.BaseDialogFragment.java
com.binkery.app.filemanager.fragments.CopyTask.java
com.binkery.app.filemanager.fragments.DeleteDialogFragment.java
com.binkery.app.filemanager.fragments.DetailDialogFragment.java
com.binkery.app.filemanager.fragments.FileListFragment.java
com.binkery.app.filemanager.fragments.FileUtils.java
com.binkery.app.filemanager.fragments.RenameDialogFragment.java
com.binkery.app.filemanager.fragments.ThumbnailLoaderHelper.java
com.binkery.app.filemanager.fragments.ThumbnailLoader.java
com.binkery.app.filemanager.settings.FileSettings.java
com.binkery.app.filemanager.utils.FileSortUtils.java
com.binkery.app.filemanager.utils.FileUtils.java
com.binkery.app.filemanager.utils.Logs.java
com.binkery.app.filemanager.utils.OptionMenuUtils.java
com.binkery.app.filemanager.utils.StringUtils.java
com.binkery.app.filemanager.utils.ToastUtils.java
com.binkery.app.filemanager.widget.SlidingMenuItem.java
com.binkery.app.filemanager.widget.SlidingMenuView.java
com.jeremyfeinstein.slidingmenu.lib.CanvasTransformerBuilder.java
com.jeremyfeinstein.slidingmenu.lib.CustomViewAbove.java
com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind.java
com.jeremyfeinstein.slidingmenu.lib.MenuInterface.java
com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.java
com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase.java
com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityHelper.java
com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity.java
com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity.java
com.jeremyfeinstein.slidingmenu.lib.app.SlidingListActivity.java
com.jeremyfeinstein.slidingmenu.lib.app.SlidingPreferenceActivity.java