Как сделать снимок экрана gridview, включая все элементы в сетке?

Как сделать снимок экрана обо всех элементах gridview.

У меня есть gridview с некоторыми изображениями. Я хочу снять скриншот сетки, включая все элементы. Я проверил этот вопрос без каких-либо успехов. Любая помощь будет оценена по достоинству.

Вот код, который я пробовал, но он не работает.

1-й путь

private Bitmap createGrid() { layoutGrid.setDrawingCacheEnabled(true); layoutGrid.buildDrawingCache(true); Bitmap bmp = layoutGrid.getDrawingCache(); if(bmp==null) { Log.i(getClass().getSimpleName(), "Bitmap is null"); } else saveScreenShot(bmp); return bmp; } public void saveScreenShot(Bitmap bmp) { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.JPEG, 100, bytes); File file = new File( Environment.getExternalStorageDirectory() + "/gridscreen.jpg"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); ostream.write(bytes.toByteArray()); ostream.close(); } catch(IOException ex) { } } 

2-й путь

 public Bitmap convertGridToBitmap() { GridView grid = gridView; EgkGridViewAdapter adapter = (EgkGridViewAdapter) grid.getAdapter(); int itemscount = adapter.getCount(); int allitemsheight = 0; List<Bitmap> bmps = new ArrayList<Bitmap>(); for (int i = 0; i < itemscount; i++) { View childView = adapter.getView(i, null, grid); childView.measure(MeasureSpec.makeMeasureSpec(grid.getWidth(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); childView.layout(0, 0, childView.getMeasuredWidth(), childView.getMeasuredHeight()); childView.setDrawingCacheEnabled(true); childView.buildDrawingCache(); bmps.add(childView.getDrawingCache()); allitemsheight+=childView.getMeasuredHeight(); } Bitmap bigbitmap = Bitmap.createBitmap(grid.getMeasuredWidth(), allitemsheight, Bitmap.Config.ARGB_8888); Canvas bigcanvas = new Canvas(bigbitmap); Paint paint = new Paint(); int iHeight = 0; for (int i = 0; i < bmps.size(); i++) { Bitmap bmp = bmps.get(i); bigcanvas.drawBitmap(bmp, 0, iHeight, paint); iHeight+=bmp.getHeight(); bmp.recycle(); bmp=null; } return bigbitmap; } 

Intereting Posts
Неверная ширина в браузере веб-браузера Android Создание формы треугольника с использованием определений xml? Что эквивалентно JavaScript setInterval / setTimeout в Android / Java? Как получить почтовые сообщения Gmail программно в android AdbCommandRejectedException Получение свойств при тестировании на эмуляторе Дублирующий класс WebRTC в android Тип Diamond не поддерживается на этом уровне языка Динамическое увеличение количества элементов в списке Zipalign error: система не может найти указанный файл Android – Как нарисовать градиент на основе дуги Получите * грубое местоположение от провайдера GPS на Android HW ускоренная активность – как получить ограничение размера текстуры OpenGL? В Android Logcat отображаются только оранжевые сообщения Gradle connectedAndroidTest завершается с ошибкой «Нет тестов», но выводит результаты тестирования Могу ли я получить доступ к ресурсам из разных локальных андроидов?