Растровое изображение растрового изображения = BitmapFactory.decodeResource (context.getResources (), R.drawable.icon);
Это не будет работать каждый раз, например, если ваш drawable является списком слоев drawable, тогда он дает нулевой ответ, поэтому в качестве альтернативы вам нужно нарисовать свой drawable на холсте, а затем сохранить как растровое изображение, см. Ниже чашку кода.
public void drawableToBitMap(Context context, int drawable, int widthPixels, int heightPixels) {
try {
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/", "drawable.png");
FileOutputStream fOut = new FileOutputStream(file);
Drawable drw = ResourcesCompat.getDrawable(context.getResources(), drawable, null);
if (drw != null) {
convertToBitmap(drw, widthPixels, heightPixels).compress(Bitmap.CompressFormat.PNG, 100, fOut);
}
fOut.flush();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private Bitmap convertToBitmap(Drawable drawable, int widthPixels, int heightPixels) {
Bitmap bitmap = Bitmap.createBitmap(widthPixels, heightPixels, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, widthPixels, heightPixels);
drawable.draw(canvas);
return bitmap;
}
приведенный выше код, сохраните, что вы можете рисовать как drawable.png в каталоге загрузки
person
Kishan Donga
schedule
21.06.2020