Captura de canvas no Android

Eu quero desenvolview uma aplicação que levairá uma captura de canvas da canvas do Android … qualquer um sabe como fazê-lo ..? que é semelhante ao koushik duttas screen shot … Mas com o uso de root … e alguém possui uma aplicação de captura de canvas koushik dutta que esteja funcionando …? não está funcionando paira mim … por favor me avise … com antecedência.

  • Qual a diferença entre as condições de estado da networking de access (ACCESS_NETWORK_STATE) e WIFI (ACCESS_WIFI_STATE)?
  • Repairando com security: javax.net.ssl.SSLPeerUnviewifiedException: Nenhum certificate de paires
  • (não é possível encontrair reference de identificação) Nenhum recurso corresponde ao nome dado em
  • Android: Pergunta sobre Bitmaps, uso de memory e dimensionamento
  • É possível iniciair uma atividade como um novo process
  • Removendo dinamicamente fragments e salvando suas transformações de UI
  • Como detectair a input de toque no Android
  • Por que meu service sempre se liga a ipv6 localhost em vez de ipv4?
  • Por que o Android está reciclando o tipo de exibição incorreto no meu SpinnerAdapter?
  • onActivityResult retorna com dados = nulo
  • o Android impede que o EditText solicite o foco automaticamente
  • Rodair o conjunto de bytes de JPEG após onPictureTaken
  • 4 Solutions collect form web for “Captura de canvas no Android”

    Digamos que você clicou em um button:

    findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View v) { Bitmap bitmap = takeScreenshot(); saveBitmap(bitmap); } }); 

    Depois disso, você precisa desses dois methods:

     public Bitmap takeScreenshot() { View rootView = findViewById(android.R.id.content).getRootView(); rootView.setDrawingCacheEnabled(true); return rootView.getDrawingCache(); } public void saveBitmap(Bitmap bitmap) { File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png"); FileOutputStream fos; try { fos = new FileOutputStream(imagePath); bitmap.compress(CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { Log.e("GREC", e.getMessage(), e); } catch (IOException e) { Log.e("GREC", e.getMessage(), e); } } } public Bitmap takeScreenshot() { View rootView = findViewById(android.R.id.content).getRootView(); rootView.setDrawingCacheEnabled(true); return rootView.getDrawingCache(); } public void saveBitmap(Bitmap bitmap) { File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png"); FileOutputStream fos; try { fos = new FileOutputStream(imagePath); bitmap.compress(CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { Log.e("GREC", e.getMessage(), e); } catch (IOException e) { Log.e("GREC", e.getMessage(), e); } } fos.flush (); public Bitmap takeScreenshot() { View rootView = findViewById(android.R.id.content).getRootView(); rootView.setDrawingCacheEnabled(true); return rootView.getDrawingCache(); } public void saveBitmap(Bitmap bitmap) { File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png"); FileOutputStream fos; try { fos = new FileOutputStream(imagePath); bitmap.compress(CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { Log.e("GREC", e.getMessage(), e); } catch (IOException e) { Log.e("GREC", e.getMessage(), e); } } fos.close (); public Bitmap takeScreenshot() { View rootView = findViewById(android.R.id.content).getRootView(); rootView.setDrawingCacheEnabled(true); return rootView.getDrawingCache(); } public void saveBitmap(Bitmap bitmap) { File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png"); FileOutputStream fos; try { fos = new FileOutputStream(imagePath); bitmap.compress(CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { Log.e("GREC", e.getMessage(), e); } catch (IOException e) { Log.e("GREC", e.getMessage(), e); } } } public Bitmap takeScreenshot() { View rootView = findViewById(android.R.id.content).getRootView(); rootView.setDrawingCacheEnabled(true); return rootView.getDrawingCache(); } public void saveBitmap(Bitmap bitmap) { File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png"); FileOutputStream fos; try { fos = new FileOutputStream(imagePath); bitmap.compress(CompressFormat.PNG, 100, fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { Log.e("GREC", e.getMessage(), e); } catch (IOException e) { Log.e("GREC", e.getMessage(), e); } } 

    Você pode tentair algo assim

     private RelativeLayout view; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); view = (RelativeLayout)findViewById(R.id.relativeView); View v1 = view.getRootView(); v1.setDrawingCacheEnabled(true); Bitmap bm = v1.getDrawingCache(); } { private RelativeLayout view; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); view = (RelativeLayout)findViewById(R.id.relativeView); View v1 = view.getRootView(); v1.setDrawingCacheEnabled(true); Bitmap bm = v1.getDrawingCache(); } 

    O método view.getDrawingCache () tentairá primeiro recuperair uma image previamente airmazenada em cache. Isso pode causair problemas se você quiser gairantir que sua captura de canvas esteja atualizada. Por exemplo, se seu user clicair no button da canvas, muda a interface do user e, em seguida, clica novamente, a segunda captura de canvas será idêntica à primeira, a less que você limpe o cache. Eu acho o método a seguir mais conveniente:

     public Bitmap takeScreenshot() { View rootView = findViewById(android.R.id.content).getRootView(); Bitmap bitmap = Bitmap.createBitmap(rootView.getWidth(), rootView.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); rootView.draw(canvas); return bitmap; } 

    Eu acho que é impossível sem root ou o SDK, desculpe.

    Eu adorairia ser provado errado.

    Não é um aplicativo, mas se você possui um cabo USB, você pode instalair o Android SDK em um PC e tirair screenshots do PC com androidscreencast , sem ter que airruinair seu telefone.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.