5

次の(スカベンジされた)コードを使用して「スクリーンショット」を取得してaction_sendいます。すべて問題なく動作しています。唯一の問題は、画像にステータス バーが含まれていないことです。理由はわかっていますが、どうすればよいかわかりません。プログラムで画像をトリミングしたり、呼び出しを行う前に何らかの境界を設定したりする方法はありgetDrawingCache()ますか??

前もって感謝します!

View v1 = findViewById(android.R.id.content).getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap screenshot = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

String path = Images.Media.insertImage(getContentResolver(), screenshot, "title", null);
Uri screenshotUri = Uri.parse(path);

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);

startActivity(Intent.createChooser(sharingIntent, "Share image using"));
4

2 に答える 2

3

スクリーンショットを送信する前に、スクリーンショットでBitmap.createBitmapを試して使用することができます。

Bitmap cropimg = Bitmap.createBitmap(originalImg, 0, 0, originalImg.width(), originalImg.height() - x)

Integerこの場合、画像の下からトリミングされるピクセル数である「x」 。要件に合わせて、特定の変更を行い、それに応じてトリミングすることができます。

それが役に立てば幸い

于 2012-07-19T08:46:12.990 に答える
0

問題は、スクリーンショットをそのまま撮っていないことです。アプリケーションの現在の画像を取得しています。アプリケーションの一部ではないため、これにステータスバーを含めることはできません。また、描画領域を上に拡張してステータスバーをキャプチャすることもできません。

于 2012-07-19T08:50:22.247 に答える