Android screen ..誰もがそれを行う方法を知っていますか..?これはkoushik duttasのスクリーンショットに似ています..しかし、rootを使用せずに..そして、動作しているkoushik duttaスクリーンショットアプリケーションを持っている人はいますか..?動作していません..事前にお知らせください..ありがとうございます。
ボタンをクリックしたとしましょう:
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Bitmap bitmap = takeScreenshot();
saveBitmap(bitmap);
}
});
その後、次の2つの方法が必要です。
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);
}
}
あなたはこのようなことを試すことができます
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();
}
メソッドview.getDrawingCache()は、最初に、以前にキャッシュした画像の取得を試みます。スクリーンショットが最新であることを保証したい場合、これは問題を引き起こす可能性があります。たとえば、ユーザーがスクリーンショットボタンをクリックし、UIを変更してからもう一度クリックすると、キャッシュをワイプしない限り、2番目のスクリーンショットは最初のスクリーンショットと同じになります。次の方法の方が便利だと思います。
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;
}
申し訳ありませんが、rootまたはSDKなしでは不可能だと思います。
私は間違っていると証明されたいです。
アプリではありませんが、USBケーブルをお持ちの場合は、PCにAndroid SDKをインストールし、 androidscreencast を使用してPCからスクリーンショットを撮ることができます。root化する必要はありません。あなたの電話。