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.

  • ¿Por qué maxWidth en un botón no funciona y cómo trabajar alrededor de él?
  • ¿Se puede centrar un botón en RelativeLayout?
  • Libgdx SpriteBatch render a la textura
  • ¿Por qué androide logcat no muestra el seguimiento de la pila para una excepción de tiempo de ejecución?
  • En Android EditText, ¿cómo eliminar las sugerencias de la barra de teclado suave?
  • Ejecutar servicio incluso si la aplicación está cerrada (matado)
  • Android: interfaz de usuario personalizada con atributos personalizados
  • Ionic update-notifier-cordova.json 'No tiene acceso a este archivo
  • SearchView on support.v7.appcompat problema de la biblioteca: el fondo de 9 parches predeterminado no se procesa correctamente
  • ¿Cómo mostrar la vista personalizada en ActionBar?
  • ¿Cómo hacer clics en parte del modelo en Vuforia (sin Unity)?
  • Android - ¿Cómo crear una transición de un elemento en listview a toda una actividad?
  • 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.