Captura toda la vista de desplazamiento más grande que la pantalla

El principal problema es guardar toda la vista de desplazamiento como una imagen de mapa de bits en lugar de sólo lo que aparece en la pantalla. ¿Hay una manera de guardar toda la vista de desplazamiento, y si es así cómo?

Haga un RelativeLayout o LinearLayout en su ScrollView para obtener Bitmap desde Layout.

Organiza de esta manera:

public class ActivityA extends Activity { LinearLayout PP_Ll; Button btn_capture; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); PP_Ll = (RelativeLayout) findViewById(R.id.PP_Ll); Button btn_capture= (Button) findViewById(R.id.btn_capture); btn_capture.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Bitmap bitmap = takeScreenshot(); saveBitmap(bitmap); } }); public Bitmap takeScreenshot() { View rootView = getWindow().getDecorView().findViewById(R.id.PP_Ll); rootView.setDrawingCacheEnabled(true); return rootView.getDrawingCache(); } public void saveBitmap(Bitmap bitmap) { String root = Environment.getExternalStorageDirectory().toString(); File newDir = new File(root + "/Folder"); newDir.mkdirs(); Random gen = new Random(); int n = 10000; n = gen.nextInt(n); String fotoname = "Photo-" + n + ".jpg"; File file = new File(newDir, fotoname); if (file.exists()) file.delete(); try { FileOutputStream fos = new FileOutputStream(file); bitmap.compress(CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); Toast.makeText(getApplicationContext(), "Saved in folder: 'Folder'", Toast.LENGTH_SHORT).show(); } catch (FileNotFoundException e) { Log.e("GREC", e.getMessage(), e); } catch (IOException e) { Log.e("GREC", e.getMessage(), e); } } }} 

Su RelativeLayout se guardará en cierto directorio como BitMap. Buena suerte.

Nota: Debe insertar sus vistas de imagen, vistas de texto, etc. en su archivo RelativeLayout en .xml, que todos pueden ver en la captura de pantalla.

Intente debajo del código: –

 public static Bitmap loadBitmapFromView(View v, int width, int height) { Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height); v.draw(c); return b; } 

Ver abajo enlace

Tomar una captura de pantalla de una vista completa

Posible solución, puede crear un emulador de un tamaño de pantalla más grande tal vez 10 pulgadas, y ejecutar su aplicación en él, Si su listview se ajusta a la pantalla, puede tomar una captura de pantalla de la misma.

  • Cómo obtener la última posición de vista de desplazamiento, vista de desplazamiento
  • Eliminar la pista de la barra de desplazamiento de ScrollView en Android
  • Cómo agregar dos listview en scrollview
  • distinguir un golpe y hacer clic en android (pasar el evento a otra vista si es un golpe)
  • ScrollView no se desplaza
  • ¿Efecto de desplazamiento personalizado para scrollview?
  • ¿Por qué mi ScrollView es demasiado ancha sólo cuando no necesita desplazarse?
  • Instagram como desplazamiento en la galería personalizada
  • Coloque un bloque en el centro de un ScrollView
  • Uso de RelativeLayout dentro de ScrollView no se produce en desplazamiento
  • Cómo desplazarse tableview en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.