2017-07-23 1 views
0

Je dois avoir une série de boutons avec le texte et l'icône. L'icône à l'intérieur des 4 boutons doit pivoter pour couvrir chaque poly.Android dessinable tourner à l'intérieur du bouton

Suivez un exemple avec deux boutons où le haut est créé avec l'icône originale (dessinable vectoriel) et le bouton "gauche" tournant le vecteur.

 <Button 
      style="@style/Buttons.Small" 
      android:drawableLeft="@drawable/ic_vertical_align_top_white_12dp" 
      android:text="@string/optional" /> 

     <Button 
      style="@style/Buttons.Small" 
      android:drawableLeft="@drawable/arrow_left" 
      android:text="@string/optional" /> 

Le vecteur drawable: ic_vertical_align_top_white_12dp

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="12dp" 
    android:height="12dp" 
    android:viewportHeight="24.0" 
    android:viewportWidth="24.0"> 
    <path 
     android:fillColor="#FFFFFF" 
     android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z" />  
</vector> 

Pivoter drawable: arrow_left.xml

<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="-90" 
    android:toDegrees="-90" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:drawable="@drawable/ic_vertical_align_top_white_12dp"> 
</rotate> 

Le style

<style name="Buttons.Small"> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:background">@color/buttonSmallBackground</item> 
    <item name="android:layout_margin">2dp</item> 
    <item name="android:minHeight">0dp</item> 
    <item name="android:minWidth">0dp</item> 
    <item name="android:textSize">12sp</item> 
    <item name="android:drawablePadding">4dp</item> 
    <item name="android:paddingLeft">4dp</item> 
    <item name="android:paddingRight">4dp</item> 
</style> 

Et suivant le résultat

Nougat (parfait)

enter image description here

Marshmallow (MAL)

enter image description here

I alrea dy a essayé de jouer avec le vecteur viewport sans succès.

Merci

Répondre

0

J'ai résolu avec un tour. Appling directement la rotation à l'intérieur du vecteur.

Maintenant arrow_left.xml deviennent

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="12dp" 
    android:height="12dp" 
    android:viewportHeight="24.0" 
    android:viewportWidth="24.0"> 
    <group android:rotation="-90" 
     android:pivotX="12" 
     android:pivotY="12"> 
     <path 
      android:fillColor="#FFFFFF" 
      android:pathData="M8,11h3v10h2V11h3l-4,-4 -4,4zM4,3v2h16V3H4z" /> 
    </group> 
</vector> 

Je ne sais pas pourquoi Marshmallow la rotation fonctionne pas correctement, mais ce résous mon cas.

Remerciements