Convierta el diseño del marco en imagen y guárdelo

¿ FrameLayout puede ayudarme a saber cómo capturar el contenido de un FrameLayout en una imagen y guardarlo en el almacenamiento interno o externo?

intente esto para convertir una vista (framelayout) en un bitmap:

 public Bitmap viewToBitmap(View view) { Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); view.draw(canvas); return bitmap; } 

luego, guarda tu bitmap en un archivo:

 try { FileOutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory() + "/path/to/file.png"); bitmap.compress(Bitmap.CompressFormat.PNG, 100, output); output.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 

no olvides configurar el permiso de escritura de almacenamiento en tu AndroidManifest.xml:

  

prueba esto…

 public static void saveFrameLayout(FrameLayout frameLayout, String path) { frameLayout.setDrawingCacheEnabled(true); frameLayout.buildDrawingCache(); Bitmap cache = frameLayout.getDrawingCache(); try { FileOutputStream fileOutputStream = new FileOutputStream(path); cache.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream); fileOutputStream.flush(); fileOutputStream.close(); } catch (Exception e) { // TODO: handle exception } finally { frameLayout.destroyDrawingCache(); } }