5

SDカードを備えたデバイスを持っていないため、現在の画面のスクリーンショット(ボタンを押した後)を撮り、ギャラリーに保存するコードを知りたいです。したがって、デフォルトのギャラリーに保存します。ありがとうございました

4

4 に答える 4

11
  Bitmap bitmap;
  View v1 = findViewById(R.id.rlid);// get ur root view id
  v1.setDrawingCacheEnabled(true); 
  bitmap = Bitmap.createBitmap(v1.getDrawingCache());
  v1.setDrawingCacheEnabled(false);

これでうまくいくはずです。

保存用

  ByteArrayOutputStream bytes = new ByteArrayOutputStream();
  bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
  File f = new File(Environment.getExternalStorageDirectory()
                    + File.separator + "test.jpg")
  f.createNewFile();
  FileOutputStream fo = new FileOutputStream(f);
  fo.write(bytes.toByteArray()); 
  fo.close();
于 2013-03-07T16:26:10.033 に答える
5
    View v1 = L1.getRootView();
    v1.setDrawingCacheEnabled(true);
    Bitmap bm = v1.getDrawingCache();
    BitmapDrawable bitmapDrawable = new BitmapDrawable(bm);
    image = (ImageView) findViewById(R.id.screenshots);
    image.setBackgroundDrawable(bitmapDrawable);

完全なソース コードについては、以下のブログを参照してください。

http://amitandroid.blogspot.in/2013/02/android-taking-screen-shots-through-code.html

ビットマップを保存するには、以下のリンクを参照してください

Android 作成されたビットマップを SD カードのディレクトリに保存する

于 2013-03-07T16:31:28.290 に答える
0

コメントしたよう323goに、デバイスがルート化されていない限り、これは不可能です。

しかし、そうであれば、 monkeyrunnerまたはエミュレーターを使用している場合は、良い仕事かもしれません。

于 2013-03-07T16:25:38.250 に答える