Androidスタジオでアプリを作成しようとしています。機能の1つは、ボタンを押すとスクリーンショットが撮られ、ギャラリーにエクスポートされるということです。私はボタンが画像に含まれることを望んでいないので、ボタンが画面のボトムに置かれるか、別の方法があるので、特定の領域のスクリーンショットを取ることができるかどうか疑問に思っています。ボタンクリックのアプリでは、特定の領域のスクリーンショットを取り、ギャラリーにエクスポートする必要があります
-4
A
答えて
0
この
は、簡単な方法があります許可
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv.setVisibilty(View.GONE);
Bitmap screenShot = TakeScreenShot(layout_id);
MediaStore.Images.Media.insertImage(
getContentResolver(),
screenShot,
"Image",
"Captured ScreenShot");
Toast.makeText(getApplicationContext(), "Screen Captured.",Toast.LENGTH_SHORT).show();
}
});
public Bitmap TakeScreenShot(View rootView)
{
Bitmap bitmap = Bitmap.createBitmap(rootView.getWidth(),rootView.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
rootView.draw(canvas);
return bitmap;
}
0
を追加し、ボタンの視認性が前に。あなたがここに例をチェックしてスクリーンショットを撮影した隠してみてください: -
public class MainActivity extends AppCompatActivity {
Button screenshot_btn;
Bitmap mbitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
screenshot_btn= (Button) findViewById(R.id.screenshot_btn);
screenshot_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
screenshot_btn.setVisibility(View.GONE);
mbitmap = takeScreenShot(getWindow().getDecorView().getRootView());
SaveImage(mbitmap, "MyScreenShot");
}
});
}
//************************** screenShot ************************************
public Bitmap takeScreenShot(View view) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}
// ************************** Save Image in Internal Stroage **************************
private void SaveImage(Bitmap finalBitmap, String imgName) {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/screenshot");
myDir.mkdirs();
String fname = imgName + ".jpg";
File file = new File(myDir, fname);
if (file.exists()) file.delete();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
を
関連する問題
- 1. jqueryセレクタは、領域内にある要素のない領域を選択する必要があります
- 2. スパークスクロールバーの領域を保存する必要があります
- 3. ボタンクリックで角度アプリをリフレッシュする必要があります
- 4. ビューでは、特定のボタンクリックで特定のテキストボックスとモデルを使用する必要があります。
- 5. 画像は特定の領域でマウスを使用して移動する必要があります
- 6. イメージ内の白い領域から緑色の領域を分離する必要があります。
- 7. Imagebuttonsなしでスクリーンショットを取る必要があります
- 8. divにFacelet領域をラップする必要がありますか?
- 9. CCSpriteの特定の領域にCCLiquid効果がありますか?
- 10. 私はアンドロイドの地図領域の一部を取得する必要があります
- 11. invalidate(l、t、r、b)の後でクリップ領域を明示的に設定する必要がありますか?
- 12. C#で特定の領域のスクリーンショットを撮っていますか?
- 13. 特定のブランチでコミットを探す必要があります
- 14. ビュー要素を特定するim特定の領域(iphone)
- 15. 特定のコミットに戻る必要があります
- 16. geom_violinプロットで特定の領域を塗りつぶす
- 17. ウェブサイトの特定の領域/一部の内部でjavascriptを無効にする方法はありますか?
- 18. アプリをGoogleクラウドプラットフォームに保存するには、どの地域を選択する必要がありますか?
- 19. 特定の領域でピクセルの色を取得する方法
- 20. jenkinsにはSVNの「領域」が必要です。どのようにそれを見つけ出し、何を入力する必要がありますか?
- 21. jQueryでExcelエクスポートを実装する必要があります
- 22. 固定サイズの要素で領域を塗りつぶす
- 23. Facebook:アプリはホワイトリストにある必要があります
- 24. 特定のボタンonclickのみを表示する、残りは同じである必要があります
- 25. 画像ギャラリーの下部にリンクを表示する必要があります。
- 26. Androidデバイスの内部領域にファイルをコピーするために必要なマニフェスト権限はありますか?
- 27. アンドロイド画面の特定の領域をギャラリーに保存するにはどうすればいいですか?
- 28. 左のナビゲーションではあるが特定の領域までの不透明度
- 29. 特定のメモリ領域でCPUキャッシュを無効にする方法はありますか?
- 30. 変更のドロップダウンで領域座標を強調表示する必要があります
を参照してください:https://stackoverflow.com/questions/5536066/convert-view-to-bitmap-on-android –
質問があれば私のansと私に尋ねてください –
可能な複製[ビューをAndroidのビットマップに変換する](https://stackoverflow.com/questions/5536066/convert-view-to-bitmap-on-android) –