2016-01-21 3 views
0

J'ai suivi cet article: http://javarticles.com/2015/09/android-icon-badge-example-using-layer-list-drawable.html. Mon code est presque exactement le même, avec un peu de peaufinage dans la partie de positionnement.Regardless ce que je l'essaie ne dessine jamais au-dessus de la première taille drawable de couche. J'essaye d'utiliser ceci sur un bouton de bascule de tiroir d'ActionBarSerlock (yuh je sais ABS est @Deprecated) ou également connu sous le nom de hamburger, mais comment suis-je pour placer le cercle pour dessiner en dehors des limites de la première image? toujours obtenir quelque chose comme ceci:Insigne de la liste des calques Android

enter image description here

Je veux que le cercle de tirer pleinement et ne pas être coupé par la hauteur de la première image.

Répondre

0

J'utilisé la méthode LayerDrawablesetLayerInset() .Took-moi un peu de temps pour jouer, il ressemble maintenant à ceci:

mLayerDrawable.setLayerInset(0, 0, vSeperator, hSeperator, 0); 
mLayerDrawable.setLayerInset(1, 0, 0, 0, vSeperator); 

Lorsque la vSeprator/hSeparator sont calculées densité des valeurs indépendantes:

float density = getResources().getDisplayMetrics().density; 
      int vSeperator = (int) (10 * density + 0.5f); 
      int hSeperator = (int) (10 * density + 0.5f); 

Hint : Je déplace les deux images en taille égale mais en sens inverse