Pregunta: ¿Cómo agregar un efecto de desenfoque a una imagen en el desarrollo de Android?
Responder :
Hola, acabo de leer tu pregunta y espero que mi respuesta te ayude, sigue estos pasos.
- ¿Cuál es la mejor manera de aprender el desarrollo de aplicaciones de Android y dónde?
- ¿Qué base de datos utilizas para tu aplicación móvil?
- ¿Cuál es el emulador más rápido para el desarrollo de Android que puede funcionar con Eclipse y Java?
- ¿Podría ir para el desarrollo de aplicaciones de Android? ¿Cuáles son las formas en que podría mejorar esta computadora portátil para este propósito?
- Cómo confiar en un desarrollador de aplicaciones para obtener permisos en Android e iOS
Crear un efecto de desenfoque en Android con RenderScript
En el procesamiento de imágenes, un efecto de desenfoque, también conocido como desenfoque gaussiano, es el resultado de desenfocar una imagen aplicando una función gaussiana. El efecto de desenfoque es ampliamente utilizado en software de gráficos. En ese tutorial, aprenderá cómo aplicar un efecto de desenfoque en Android utilizando la Biblioteca RenderScript.
1. Configure su entorno para usar RenderScript
El primer paso es configurar su entorno de desarrollo para habilitar RenderScript en su proyecto de Android. Tenga en cuenta que necesita el siguiente SDK de Android con estas API:
- Android SDK Tools revisión 22.2 o superior
- Android SDK Build-tools revisión 18.1.0 o superior
Debe abrir su build.gradle y luego agregar las siguientes propiedades de RenderScript:
android {
compileSdkVersion 23
buildToolsVersion “23.0.3”
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
}}
2. Implemente el efecto de desenfoque con RenderScript
Tenga en cuenta que usaremos la API de RenderScript en V8. Esta versión se encuentra en los paquetes android.support.v8.renderscript. *. Por lo tanto, asegúrese de importar las clases correctas en su código. Vamos a crear una clase BlurBuilder con un método de desenfoque estático que toma el mapa de bits para desenfocar y devuelve el mapa de bits borroso. Usaremos una constante de radio de desenfoque para definir qué radio queremos aplicar en la imagen original.
El código para la clase BlurBuilder debería ser así:
paquete com.ssaurel.blureffect;
importar android.content.Context; importar android.graphics.Bitmap; importar android.support.v8.renderscript.Allocation; importar android.support.v8.renderscript.Element; importar android.support.v8.renderscript.RenderScript; importar android.support.v8.renderscript.ScriptIntrinsicBlur;
/ ** * Creado por ssaurel el 29/09/2016. * / public class BlurBuilder {
flotante final estática privada BITMAP_SCALE = 0.6f;
flotante final estática privada BLUR_RADIUS = 15f;
desenfoque de mapa de bits estático público (contexto de contexto, imagen de mapa de bits) {
ancho int = Math.round (image.getWidth () * BITMAP_SCALE);
int height = Math.round (image.getHeight () * BITMAP_SCALE);
Bitmap inputBitmap = Bitmap.createScaledBitmap (imagen, ancho, alto, falso);
Mapa de bits outputBitmap = Bitmap.createBitmap (inputBitmap);
RenderScript rs = RenderScript.create (contexto);
ScriptIntrinsicBlur intrinsicBlur = ScriptIntrinsicBlur.create (rs, Element.U8_4 (rs));
Asignación tmpIn = Allocation.createFromBitmap (rs, inputBitmap);
Asignación tmpOut = Allocation.createFromBitmap (rs, outputBitmap);
intrinsicBlur.setRadius (BLUR_RADIUS);
intrinsicBlur.setInput (tmpIn);
intrinsicBlur.forEach (tmpOut);
tmpOut.copyTo (outputBitmap);
return outputBitmap;
}
}
Como puede ver, elegimos aplicar una escala en el mapa de bits original, pero no es obligatorio. Luego, creamos una instancia de RenderScript. La API RenderScript V8 nos ofrece una clase ScriptIntrinsicBlur que implementa un efecto de desenfoque con RenderScript. Lo usamos con la instancia de RenderScript en el parámetro. Luego, debemos asignar memoria para el mapa de bits de entrada y el mapa de bits de salida. El último paso es configurar el efecto de desenfoque aplicando el parámetro de radio.
Finalmente, obtenemos la imagen borrosa como resultado y la devolvemos.
3. Defina imágenes en su diseño principal
Para ver nuestro efecto de desenfoque en acción, necesitamos crear un diseño con dos imágenes. El primero se usará para mostrar una imagen inicial y el segundo para mostrar la imagen borrosa. Utilizaremos el siguiente diseño:
<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android"
xmlns: tools = “http://schemas.android.com/tools”
android: layout_width = “match_parent”
android: layout_height = “match_parent”
herramientas: contexto = “com.ssaurel.blureffect.MainActivity”>
<ImageView
android: layout_width = “256dp”
android: layout_height = “256dp”
android: id = “@ + id / originalImage”
android: layout_marginTop = “20dp”
android: layout_centerHorizontal = “true”
android: src = “@ drawable / logo_ssaurel” />
<ImageView
android: layout_width = “wrap_content”
android: layout_height = “wrap_content”
android: id = “@ + id / resultImage”
android: layout_below = “@ id / originalImage”
android: layout_centerHorizontal = “true” />
4. Aplicar el efecto de desenfoque
Ahora es el momento de aplicar el efecto de desenfoque en la actividad principal de nuestra aplicación:
paquete com.ssaurel.blureffect;
importar android.graphics.Bitmap; importar android.graphics.BitmapFactory; importar android.os.Bundle; importar android.support.v7.app.AppCompatActivity; importar android.widget.ImageView;
clase pública MainActivity extiende AppCompatActivity {
@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
ImageView resultImage = (ImageView) findViewById (R.id.resultImage);
Bitmap resultBmp = BlurBuilder.blur (esto, BitmapFactory.decodeResource (getResources (), R.drawable.logo_ssaurel));
resultImage.setImageBitmap (resultBmp);
}}
Obtenemos nuestra imagen inicial como un mapa de bits con el método estático decodeResource de la clase BitmapFactory, luego aplicamos el efecto de desenfoque. Finalmente, configuramos el mapa de bits borroso en la vista de imagen de resultado.
5. Resultado del efecto de desenfoque
Ahora, puede disfrutar del resultado de su efecto de desenfoque:
Espero que esto ayude . Si desea cualquier servicio de Photoshop en línea con un aspecto profesional y pocos dólares en solo un par de horas, puede contactarme en cualquier momento. Haga clic en este enlace si desea algún servicio de Photoshop
saadqazi423: diseñaré una tarjeta de presentación profesional en unas horas por $ 10 en www.fiverr.com
saadqazi423: eliminaré o cambiaré el fondo de sus fotos por $ 5 en www.fiverr.com