에서 앱 적응 아이콘을 가져옵니다. 앱 적응 형 아이콘을 검색하려면 어떻게해야합니까? 고맙습니다.안드로이드 내가이 줄 때문에 적응 아이콘의 나에게 빈 아이콘을 반환,이</p> <pre><code>resolveInfo.activityInfo.loadIcon(packageManager) </code></pre> <p>처럼하지만 안드로이드 8.0 오레오에서 응용 프로그램의 실행 아이콘을 얻고 패키지 관리자
1
A
답변
0
이 클래스를 사용하여 adaptiveIcon에서 비트 맵을 가져올 수 있습니다.
public static class AppIconHelperV26 {
@RequiresApi(api = Build.VERSION_CODES.O)
public static Bitmap getAppIcon(PackageManager mPackageManager, String packageName) {
try {
Drawable drawable = mPackageManager.getApplicationIcon(packageName);
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable) drawable).getBitmap();
} else if (drawable instanceof AdaptiveIconDrawable) {
Drawable backgroundDr = ((AdaptiveIconDrawable) drawable).getBackground();
Drawable foregroundDr = ((AdaptiveIconDrawable) drawable).getForeground();
Drawable[] drr = new Drawable[2];
drr[0] = backgroundDr;
drr[1] = foregroundDr;
LayerDrawable layerDrawable = new LayerDrawable(drr);
int width = layerDrawable.getIntrinsicWidth();
int height = layerDrawable.getIntrinsicHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
layerDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
layerDrawable.draw(canvas);
return bitmap;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
아이디어가 있습니까? – ithink