2012-08-28 7 views
6

Come ottenere questo effetto bagliore blu su un'icona? C'è un modo rapido per farlo? Non voglio davvero usare Photoshop per questo effetto.Android - Come rendere un'icona luminosa al tocco?

Qualsiasi aiuto sarebbe molto apprezzato.

+0

Devi fare uso di statelistdrawables in cui potrete definire l'effect.Please blu visita la discussione http://stackoverflow.com/questions/6501716/android-how-to-create-a-statelistdrawable-programmatically oppure puoi visitare http://developer.android.com/guide/topics/resources/ drawable-resource.html –

risposta

21

Se si desidera generare il bagliore programatically, ecco come si può fare. Il mio consiglio, generare solo una volta al beggining della vostra attività, quindi creare uno StateListDrawable usarlo, come detto nel commento:

// 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

Mi piace molto il modo in cui hai spiegato le cose usando i commenti. Grazie. – Varundroid

Problemi correlati