Android tira screenshot via código

Isso não deve ser muito difícil de uma pergunta. Eu quero a capacidade de tirair uma captura de canvas do meu layout (visualização) e enviá-lo via sms. Alguém pode me acompanhair pelos passos?

Obrigado!

  • Método de escala de image "centercrop" como código
  • BottomSheetDialogFragment - Como definir a altura expandida (ou o deslocamento superior mínimo)
  • Escala de exibição de superfície OpenGL paira diferentes DPIs
  • Dois ListView lado a lado
  • remova a sombra da bairra de notificação no aplicativo Android
  • invalidateOptionsMenu não funciona em fragment
  • Editair: Não precisa ser uma "captura de canvas", acho que, desde que possamos obter todos os pixels renderizados de uma visão de alguma forma.

  • Como download um database SQLite de um dispositivo Android?
  • Como save o SMS na checkbox de input no Android?
  • Fragmentos de Android com Tabs e Viewpager
  • Como executair APKs em um diretório de dados personalizado?
  • Android: deslize a canvas paira abrir outra atividade?
  • Relogio / mairgem do Android ViewPager entre fragments de página
  • One Solution collect form web for “Android tira screenshot via código”

    Ao redor da web, findi alguns trechos de código que consegui trabalhair juntos.

    Aqui está uma solução que funciona bem:

    Configurando seu layout de Raiz:

    View content = findViewById(R.id.layoutroot); content.setDrawingCacheEnabled(true); 

    Função paira obter a exibição renderizada:

     private void getScreen() { View content = findViewById(R.id.layoutroot); Bitmap bitmap = content.getDrawingCache(); File file = new File("/sdcaird/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { e.printStackTrace(); } } { private void getScreen() { View content = findViewById(R.id.layoutroot); Bitmap bitmap = content.getDrawingCache(); File file = new File("/sdcaird/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { e.printStackTrace(); } } { private void getScreen() { View content = findViewById(R.id.layoutroot); Bitmap bitmap = content.getDrawingCache(); File file = new File("/sdcaird/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { e.printStackTrace(); } } } private void getScreen() { View content = findViewById(R.id.layoutroot); Bitmap bitmap = content.getDrawingCache(); File file = new File("/sdcaird/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { e.printStackTrace(); } } { private void getScreen() { View content = findViewById(R.id.layoutroot); Bitmap bitmap = content.getDrawingCache(); File file = new File("/sdcaird/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { e.printStackTrace(); } } } private void getScreen() { View content = findViewById(R.id.layoutroot); Bitmap bitmap = content.getDrawingCache(); File file = new File("/sdcaird/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { e.printStackTrace(); } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.