獲取apk的logo和視訊檔案的略縮圖
阿新 • • 發佈:2018-11-12
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;
}
}