Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Elige la imagen de la tarjeta sd, cambia el tamaño de la imagen y la guarda de nuevo en la tarjeta sd

Estoy trabajando en una aplicación, en la que tengo que escoger una imagen de la sd card y mostrarlo en la vista de la imagen. Ahora quiero que el usuario disminuya / aumente su anchura haciendo clic en un botón y luego guárdelo de nuevo en la tarjeta sd.

He hecho la recogida de imágenes y mostrándolo en ui. Pero no puedo encontrar cómo cambiar el tamaño it.Can nadie por favor me sugieren cómo lograrlo.

  • Encuentra la distancia entre dos puntos en el mapa mediante Google Map API V2
  • Android - personalización de las pestañas de barra de acción de sherlock
  • No se puede conectar Nexus 4 a adb: no autorizado
  • Detectar cuándo la reproducción de vídeo deja de reproducirse
  • ¿Puede el recolector de basura desasignar una instancia singleton? (Y por qué o cómo evitarlo)
  • Anotación de nivel de API de Android para bibliotecas de Android
  • Cómo expandir AppBarLayout al desplazarse hacia abajo alcanza en la parte superior de la RecyclerView
  • Android: Edittext con centro de gravedad que no funciona en el dispositivo
  • El botón Volver a la barra de acción no aparece en Android
  • Intel HAXM equivalente para AMD en el sistema operativo Windows
  • MySpace Integración, clave Api generar
  • Java.lang.RuntimeException: Paralleable encontró IOException escribiendo objeto serializable en Android que pasa el objeto ArrayList
  • 4 Solutions collect form web for “Elige la imagen de la tarjeta sd, cambia el tamaño de la imagen y la guarda de nuevo en la tarjeta sd”

    Ayer lo hice

     File dir=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); Bitmap b= BitmapFactory.decodeFile(PATH_ORIGINAL_IMAGE); Bitmap out = Bitmap.createScaledBitmap(b, 320, 480, false); File file = new File(dir, "resize.png"); FileOutputStream fOut; try { fOut = new FileOutputStream(file); out.compress(Bitmap.CompressFormat.PNG, 100, fOut); fOut.flush(); fOut.close(); b.recycle(); out.recycle(); } catch (Exception e) {} 

    También no olvide reciclar sus bitmaps : Se ahorrará memoria.

    También puede obtener la ruta del nuevo archivo creado String: newPath=file.getAbsolutePath();

    Intente utilizar este método:

     public static Bitmap scaleBitmap(Bitmap bitmapToScale, float newWidth, float newHeight) { if(bitmapToScale == null) return null; //get the original width and height int width = bitmapToScale.getWidth(); int height = bitmapToScale.getHeight(); // create a matrix for the manipulation Matrix matrix = new Matrix(); // resize the bit map matrix.postScale(newWidth / width, newHeight / height); // recreate the new Bitmap and set it back return Bitmap.createBitmap(bitmapToScale, 0, 0, bitmapToScale.getWidth(), bitmapToScale.getHeight(), matrix, true); } 

    Puede utilizar Bitmap.createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, filtro booleano)

    Debería idealmente utilizar el multitouch en lugar de usar un botón para aumentar / disminuir el ancho. Aquí está una biblioteca increíble. Una vez que el usuario decide guardar la imagen, la matriz de traducción de imágenes debe almacenarse de forma persistente (en su base de datos sqlite). La próxima vez que el usuario abra la imagen, necesita recuperar la matriz y aplicarla a su imagen.

    Realmente he hecho esto antes.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.