Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon);
Dies wird nicht funktionieren, jedes Mal zum Beispiel, wenn Ihre drawable ist Schicht Liste drawable dann gibt es eine Null-Antwort, so dass als Alternative müssen Sie Ihre drawable in Leinwand dann als Bitmap speichern zu zeichnen, beziehen Sie sich bitte unten eine Tasse Code.
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;
}
obiger Code speichert die Zeichnungsdatei als drawable.png im Download-Verzeichnis
1 Stimmen
codingaffairs.blogspot.com/2016/06/
2 Stimmen
Bitte wählen Sie die richtige Antwort, nämlich diese: stackoverflow.com/a/3035869/4548520
1 Stimmen
stackoverflow.com/a/15555203/1731082