Tengo dos puntos de vista (Textview & ImageView) en el FrameLayout, quiero guardar la imagen con el texto. Para ello, me encubiertas de la Vista de mapa de bits.

Mi xml es:

<FrameLayout 
     android:id="@+id/framelayout"
     android:layout_marginTop="30dip"
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent">

     <ImageView 
          android:id="@+id/ImageView01"
          android:layout_height="wrap_content" 
          android:layout_width="wrap_content"/>

    <TextView android:id="@+id/text_view"
          android:layout_marginTop="30dip"
          android:layout_width="wrap_content" 
          android:maxLines="20"
          android:scrollbars="vertical"
          android:layout_height="wrap_content"/>

</FrameLayout>

4 Comentarios

  1. 79

    Cómo convertir punto de Vista en mapa de bits

    FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
    
    view.setDrawingCacheEnabled(true);
    
    view.buildDrawingCache();
    
    Bitmap bm = view.getDrawingCache();
    • y si tengo que conseguir un mapa de bits con fondo transparente?
    • podemos hacer exactamente la inversa de la misma, me refiero a que podemos convertir en mapa de bits de nuevo a ver..???
    • puede establecer de mapa de bits en el imageview o antecedentes de cualquier punto de vista.
    • Vale la pena destacar que este mapa de bits pueden ser eliminados en cualquier momento, así que lo más seguro es copia de mapa de bits en su propia, Fuente: arpitonline.com/2012/07/17/…
    • Traté de código anterior, pero devuelve el bitamap con el tamaño de la pantalla
    • Previamente, getDrawingCache() devuelto null. A continuación, he encontrado esta respuesta: stackoverflow.com/a/4618030/6514270

  2. 17

    He usado el buildDrawingCache() método para obtener un mapa de bits de mi diseño, pero Yo estaba teniendo problemas con ello cuando la vista era grande. Ahora puedo usar el siguiente método:

    FrameLayout view = findViewById(R.id.framelayout);
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    • Gracias!!! Yo estaba buscando toda la semana para encontrar una solución a mi problema con gran vista y esta solución funcionó a la perfección!
    • Gracias youuuu.Su trabajado para grandes vistas de mapa de bits de conversión.
    • java.lang.IllegalArgumentException: la anchura y la altura debe ser > 0
    • Esta respuesta supone que la vista ya ha sido presentado. Si no, entonces usted necesita para crear mediante programación (en lugar de con findViewById).
  3. 2

    Hola que usted puede conseguir un mapa de bits de una vista mediante el siguiente fragmento de código

    mView.setDrawingCacheEnabled(true);
    mView.getDrawingCache();
  4. 1

    ¿por qué no escribes tu clase que extiende ImageView y reemplazar el método onDraw y poner allí su imagen y el texto, es más fácil

    • he intentado esto, pero estoy recibiendo misma imagen sin texto.int bw = originalBitmap.getWidth(); int bh = originalBitmap.getHeight(); nb = mapa de bits.createScaledBitmap(originalBitmap,bw,bh,true);c = new Lienzo(nb);la Pintura de la pintura = new Paint() c.drawText(my_text, 0, 0, pintura);

Dejar respuesta

Please enter your comment!
Please enter your name here