El Arsenal de Android – Selectores de imágenes

Biblioteca configurable y fácil de usar para Elija una imagen de la Galería o Capture una imagen con la cámara.

  • Puede seleccionar fácilmente la imagen de la cámara y la galería y cargarla donde desee. Hemos creado esta biblioteca para que le resulte más fácil seleccionar o adquirir imágenes.
  • Permisos administrados para la cámara y la galería, también admite almacenamiento con alcance.
  • Devuelve contentUri de la imagen seleccionada.
  • Fácil de usar y compatible con todos los dispositivos principales.
  • Capturar imagen usando la cámara
  • Elija la imagen de la galería
  • Administrar el permiso de tiempo de ejecución para el almacenamiento y la cámara
  • Hoja inferior de ImagePicker
  • Recuperar el resultado de la imagen en formato Uri
  • Recorta la imagen
  • Rotar imagen
  • Ampliar reducir
  • Personalice las opciones del selector de imágenes de la hoja inferior como:
    • Personalizar solo el texto del botón
    • Personalizar solo el color del texto del botón
    • Personalice varios valores de botón como:
      • Color del texto, tamaño, familia de fuentes, relleno usando su styles.xml
    • Personalice la forma y el color del fondo de la hoja inferior
Capturar imagen usando la cámara Elija la imagen de la galería Personalizar la hoja inferior
Recorta la imagen Rotar imagen Agrandar imagen, alejar
  1. Dependencia de Gradle
  • Agregue el repositorio de JitPack al archivo build.gradle de su proyecto
    allprojects {
        repositories {
            ...
         maven { url 'https://jitpack.io' }
        }
    }
  • Agregue el complemento al archivo build.gradle de su aplicación
    plugins {
        ...
        id 'kotlin-kapt'
    } 
  • Agregue buildFeature en el archivo build.gradle de su aplicación
    android {
        ...
        buildFeatures {
            dataBinding = true
        }
    }
  • Agregue la dependencia en el archivo build.gradle de su aplicación
    dependencies {
        implementation 'com.github.SimformSolutionsPvtLtd:SSImagePicker:1.5'
    }
  1. Use la hoja inferior de ImagePicker para elegir la opción para elegir la imagen de la galería o la cámara
    val fragment = ImagePickerBottomsheet()
    fragment.show(FragmentManager, String) 
  1. Llame a ImagePickerActivityClass en su onCreate () para administrar la cámara, el clic de la galería y el resultado del permiso. Pasar contexto, actividad, solicitud de devolución de llamada de resultado de autorización y activityResultRegistry:
    var imagePicker = ImagePickerActivityClass(context,activity,onResult_Callback,activityResultRegistry)
  1. Para habilitar todas las funciones (recortar, rotar, zoomIn, zoomOut), llame a cropOptions (isAllCropFeaturesRequired: Boolean) y Pass true. De forma predeterminada, está configurado como Falso y solo proporciona la función de recorte.
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        imagePicker.cropOptions(true)
    }
  1. Otorgue permiso a la cámara y al almacenamiento para elegir la imagen y envíe su solicitud de permiso. Resultado a ImagePickerActivity
    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        imagePicker.onRequestPermissionsResult(requestCode, permissions, grantResults)
    }
  1. Para capturar una imagen de la cámara, use takePhotoFromCamera ()
    imagePicker.takePhotoFromCamera()
  1. Para elegir una imagen de la galería, use ChoosePhotoFromGallary ()
    imagePicker.choosePhotoFromGallary()
  1. Envíe su onActivityResult a ImagePickerActivity
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)  (required)
        imagePicker.onActivityResult(requestCode, resultCode, data)
    }
  1. Obtendrá el resultado de la imagen en formato Uri en returnString () y lo personalizará para cargarlo
    override fun returnString(item: Uri?) {
        **Here You Will Get Your Image Result In Uri Format**
    }
  1. Puede cargar la imagen en la vista de imagen usando la función loadImage (). (Si desea aplicar circleCrop (), pase isCircle = true, el valor predeterminado es falso)
    override fun returnString(item: Uri?) {
        imageViewEditProfile.loadImage(item, isCircle = true) {}
    }
  • Para personalizar la hoja inferior, primero anule el siguiente método en la actividad.
    override fun doCustomisations(fragment: ImagePickerBottomsheet) {
        //Do customizations here...
    }
  • Para personalizar el texto del botón en la hoja inferior.
    fragment.setButtonText("Select Camera","Select Gallery","Remove")
  • Para cambiar solo el color del texto del botón en la hoja inferior.
    fragment.setButtonColors(ContextCompat.getColor(requireContext(), R.color.colorPrimary))
  • Para personalizar varios valores de botón (color del texto, tamaño, familia de fuentes, relleno), debe crear un estilo en el archivo style.xml.
    fragment.setTextAppearance(R.style.fontForNotificationLandingPage)

En styles.xml (Nota: el padre debe ser “Widget.AppCompat.TextView”)

    <style name="fontForNotificationLandingPage" parent="Widget.AppCompat.TextView">
        <item name="android:fontFamily">@font/poppins_medium</item>
        <item name="android:textColor">@color/white</item>
        <item name="android:textSize">@dimen/_18ssp</item>
    </style>

Nota: Si se utilizan setTextAppearance y setButtonColors, la función llamada en último lugar anulará la otra.

  • Para cambiar el fondo de la hoja inferior (forma, color).
    fragment.setBottomSheetBackgroundStyle(R.drawable.drawable_bottom_sheet_dialog)

Es necesario crear un archivo dibujable con forma de tipo.

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <corners
            android:topLeftRadius="@dimen/_25sdp"
            android:topRightRadius="@dimen/_25sdp" />
        <padding android:top="@dimen/_5sdp" />
        <solid android:color="@color/colorPrimary" />
    </shape>

¿Le resultó útil esta biblioteca? ❤️

Apóyalo uniéndote astrónomos para este repositorio.

Licencia

Copyright 2020 Simform Solutions

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and limitations under the License.

.

About MiReal

Compruebe también

Blog para desarrolladores de Android: #AndroidDevJourney destacado

Publicado por Luli Perkins, Gerente del Programa de Relaciones con Desarrolladores Terminamos la edición de …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *