2012-08-28 19 views
6

¿Cómo obtener este efecto de resplandor azul sobre un ícono? ¿Hay alguna forma rápida de hacerlo? Realmente no quiero usar Photoshop para este efecto.Android - ¿Cómo hacer que un ícono brille al tacto?

Cualquier ayuda sería muy apreciada.

+0

Hay que hacer uso de statelistdrawables en la que va a definir el effect.Please azul visite el hilo http://stackoverflow.com/questions/6501716/android-how-to-create-a-statelistdrawable-programmatically o puede visitar http://developer.android.com/guide/topics/resources/ drawable-resource.html –

Respuesta

21

Si desea generar el brillo mediante programación, aquí es cómo se puede hacer. Mi consejo, generar sólo una vez en el beggining de su actividad, a continuación, crear una StateListDrawable usarlo, como se ha dicho en el comentario:

// An added margin to the initial image 
    int margin = 24; 
    int halfMargin = margin/2; 

    // the glow radius 
    int glowRadius = 16; 

    // the glow color 
    int glowColor = Color.rgb(0, 192, 255); 

    // The original image to use 
    Bitmap src = BitmapFactory.decodeResource(getResources(), 
      R.drawable.ic_launcher); 

    // extract the alpha from the source image 
    Bitmap alpha = src.extractAlpha(); 

    // The output bitmap (with the icon + glow) 
    Bitmap bmp = Bitmap.createBitmap(src.getWidth() + margin, 
      src.getHeight() + margin, Bitmap.Config.ARGB_8888); 

    // The canvas to paint on the image 
    Canvas canvas = new Canvas(bmp); 

    Paint paint = new Paint(); 
    paint.setColor(glowColor); 

    // outer glow 
    paint.setMaskFilter(new BlurMaskFilter(glowRadius, Blur.OUTER)); 
    canvas.drawBitmap(alpha, halfMargin, halfMargin, paint); 

    // original icon 
    canvas.drawBitmap(src, halfMargin, halfMargin, null); 

    ((ImageView) findViewById(R.id.bmpImg)).setImageBitmap(bmp); 
+0

Me gusta mucho la manera en que explicaste las cosas usando comentarios. Gracias. – Varundroid

Cuestiones relacionadas