2017-08-24 2 views
1

J'ai créé cette drawable:Comment puis-je dessiner un triangle en haut à gauche de ma vue?

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item > 
     <rotate 
      android:fromDegrees="45" 
      android:toDegrees="10" 
      android:pivotX="100%" 
      android:pivotY="-0%" > 
      <shape 
       android:shape="rectangle" > 
       <solid 
        android:color="@color/color_primary" /> 
      </shape> 

     </rotate> 
    </item> 
</layer-list> 

Sur l'aperçu, il ressemble à ceci:

enter image description here

Et je mets dans cette View:

 <View 
     android:id="@+id/my_view" 
     android:layout_width="32dp" 
     android:layout_height="32dp" 
     android:background="@drawable/triangle" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     /> 

Et ce View ressemble à ceci sur l'aperçu (et sur le téléphone):

enter image description here

Pourquoi ne pas le View juste montrer le triangle au coin comme sur l'aperçu du triangle? En outre, je devrais mentionner que je veux qu'il remplisse la moitié du carré View, fondamentalement aller du coin supérieur droit au coin inférieur gauche.

Merci.

Edit: on m'a donné une suggestion d'utiliser:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item > 
     <rotate 
      android:fromDegrees="45" 
      android:toDegrees="-135" 
      android:pivotX="90%" 
      android:pivotY="-45%" > 
      <shape 
       android:shape="rectangle" > 
       <solid 
        android:color="@color/color_primary" /> 
      </shape> 

     </rotate> 
    </item> 
</layer-list> 

Et qui fait produire un triangle d'angle, mais il ne remplit pas la moitié de la View place. Voici ce qu'il fait: enter image description here

Répondre

2

Je résoudrait cela en utilisant un <vector> drawable au lieu d'un <layer-list>.

<vector 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="24dp" 
    android:height="24dp" 
    android:viewportWidth="24.0" 
    android:viewportHeight="24.0"> 

    <path 
     android:fillColor="@color/color_primary" 
     android:pathData="M0 24v-24h24z"/> 

</vector> 

enter image description here

+0

Merci a bien fonctionné, merci. – casolorz

+0

Comment est-ce que je peux faire un triangle d'angle arrondi avec le vecteur? Pouvez-vous aider avec ça? –

0

Changez votre XML pour le suivant et cela fonctionnera comme vous le souhaitez.

triangle.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item > 
     <rotate 
      android:fromDegrees="45" 
      android:toDegrees="-135" 
      android:pivotX="90%" 
      android:pivotY="-45%" > 
      <shape 
       android:shape="rectangle" > 
       <solid 
        android:color="@color/color_primary" /> 
      </shape> 

     </rotate> 
    </item> 
</layer-list> 

Preview
Device screenshot:

+0

Alors que le met dans le coin, il ne remplit pas la moitié de la 'View' carré qui est ce que je voulais. J'ajoute une photo à mon message. – casolorz