Я видел много фрагментов кода для снятия скриншота, но не смог получить что-то, что делает скриншот всего экрана, а не просто вида. Он должен копировать способ, которым мы получаем скриншот, используя ddms.
Может кто-нибудь помочь?
Существует библиотека скриншотов Android, которая доступна здесь . На вики-страницах написано, что с помощью библиотеки можно делать снимки всего экрана без необходимости доступа к корневому уровню даже из неподписанного приложения. Я никогда не пробовал это все же. Вы можете использовать его в качестве отправной точки.
sh = Runtime.getRuntime().exec("su", null, null); System.out.println("capturing"); OutputStream outputstream = sh.getOutputStream(); outputstream.write("/system/bin/screencap -p /sdcard/tos_processing.png".getBytes("ASCII")); outputstream.flush(); outputstream.close(); sh.waitFor(); System.out.println("captured"); bitmap = BitmapFactory.decodeFile("/sdcard/tos_processing.png");
Попробуй это у меня сработало ...
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); view = (ImageView) findViewById(R.id.ImageView01); Button myBtn = (Button) findViewById(R.id.Button01); myBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { View v1 = view.getRootView(); v1.setDrawingCacheEnabled(true); Bitmap bm = v1.getDrawingCache(); BitmapDrawable bitmapDrawable = new BitmapDrawable(bm); ImageView view2 = (ImageView) findViewById(R.id.ImageView01); view2.setBackgroundDrawable(bitmapDrawable); } }); }