1. 程式人生 > >獲取apk的logo和視訊檔案的略縮圖

獲取apk的logo和視訊檔案的略縮圖

APK

/**
     * 獲取Apk檔案的Log圖示
     * @param context 
     * @param apk_path Apk路徑
     * @return
     */
    public static Drawable getApkThumbnail(Context context, String apk_path){
        if(context == null){
            return null;
        }

        try{
            PackageManager pm = context.getPackageManager();
            PackageInfo packageInfo = pm.getPackageArchiveInfo(apk_path, PackageManager.GET_ACTIVITIES);
            ApplicationInfo appInfo = packageInfo.applicationInfo;
            /**獲取apk的圖示 */
appInfo.sourceDir = apk_path; appInfo.publicSourceDir = apk_path; if(appInfo != null){ Drawable apk_icon = appInfo.loadIcon(pm); return apk_icon; } }catch(Exception e){ } return null; }

得到的是Drawable,轉換成BitMap

/**
     * Drawable轉Bitmap
     *
     * @param drawable
     * @return
     */
    public static Bitmap drawableToBitmap(Drawable drawable){
        if(drawable == null){
            return null;
        }

        // 取 drawable 的長寬
        int w = drawable.getIntrinsicWidth();
        int h = drawable.getIntrinsicHeight();
        // 取 drawable 的顏色格式
Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; //建立對應的Bitmap Bitmap bitmap = Bitmap.createBitmap(w, h, config); // 建立對應 bitmap 的畫布 Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); // 把 drawable 內容畫到畫布中 drawable.draw(canvas); return bitmap; }

視訊檔案

bitmap = ScreenshotUtils.createVideoThumbnail(filePath);
bitmap = ScreenshotUtils.extractThumbnail(bitmap, 100, 100);
public class ScreenshotUtils {

    /**
     * 建立縮圖
     *
     * @param filePath
     * @return
     */
    public static Bitmap createVideoThumbnail(String filePath){
        Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(filePath, MediaStore.Images.Thumbnails.MICRO_KIND);
        return bitmap;
    }


    /**
     * 將圖片轉換成指定寬高
     *
     * @param source
     * @param width
     * @param height
     * @return
     */
    public static Bitmap extractThumbnail(Bitmap source, int width, int height){
        Bitmap bitmap = ThumbnailUtils.extractThumbnail(source, width, height);
        return bitmap;
    }


}