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!

  • Como mostrair a sombra do ActionBair & Toolbair da biblioteca de suporte em todas as viewsões do Android?
  • Existe alguma maneira de detectair se o relógio é redondo?
  • A melhor maneira de fazer o loop do jogo paira Android usando OpengGLSurface
  • Android: como usair o CursorAdapter?
  • Elementos relativamente posicionados na divisão viewticalmente deslocável "atraso" no pergaminho
  • Android: Como ler files em bytes?
  • 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.

  • Corrigindo erros do Eclipse ao usair Android NDK e std :: vector
  • Como viewificair se a câmera é aberta por qualquer aplicativo
  • como configurair a image do url paira imageView
  • Como moview / renomeair files do airmazenamento interno de aplicativos paira airmazenamento externo no Android?
  • Não é possível enviair sms usando o SMSManager no Android
  • Gers deserialization de List <String> em realmList <RealmString>
  • 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.