96 votes

Comment faire une forme avec haut-gauche tour à coins arrondis et en bas à gauche, coins arrondis?

Je veux faire une forme avec avec haut-gauche à coins arrondis et en bas à gauche, le coin arrondi:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#555555"/>    

    <stroke android:width="3dp"
            android:color="#555555"
            />

    <padding android:left="1dp"
             android:top="1dp"
             android:right="1dp"
             android:bottom="1dp"
             /> 

    <corners android:bottomRightRadius="0dp" android:bottomLeftRadius="2dp" 
     android:topLeftRadius="2dp" android:topRightRadius="0dp"/> 
</shape>

Mais la forme ci-dessus ne me donne pas ce que je veux. Il me donne un rectangle sans coins arrondis.

Quelqu'un peut-il aider?

Merci.

73voto

user256239 Points 3579

Il ressemble à un bug http://code.google.com/p/android/issues/detail?id=939.

Enfin, je dois écrire quelque chose comme ceci:

 <stroke android:width="3dp"
         android:color="#555555"
         />

 <padding android:left="1dp"
          android:top="1dp"
          android:right="1dp"
          android:bottom="1dp"
          /> 

 <corners android:radius="1dp"
  android:bottomRightRadius="2dp" android:bottomLeftRadius="0dp" 
  android:topLeftRadius="2dp" android:topRightRadius="0dp"/> 

Je tiens à préciser android:bottomRightRadius="2dp" pour en bas à gauche, coins arrondis (un autre bug ici).

58voto

Geoff Points 1332

Bien que cette question a déjà répondu (c'est un bug qui provoque bottomLeftRadius et bottomRightRadius être inversé), le bogue a été corrigé dans android 3.1 (api de niveau 12 - testé sur l'émulateur).

Donc, assurez-vous que votre un drawable l'air correct sur toutes les plates-formes, vous devriez mettre "corrigé" versions de l'un drawable (c'est à dire où en bas à gauche/droite rayons sont en fait correcte dans le fichier xml) dans le res/drawable-v12 dossier de votre application. De cette façon, tous les appareils à l'aide d'une version d'android >= 12 utiliser le bon drawable fichiers, tandis que les dispositifs utilisant les anciennes versions d'android utilisez la "solution de contournement" un drawable qui sont situés dans le res/un drawable dossier.

36voto

Entreco Points 3950

À partir de la documentation:

REMARQUE: à Chaque coin de rue, il faut (d'abord) un coin de rayon supérieur à 1, sinon pas de coins sont arrondis. Si vous voulez spécifique les coins à ne pas être arrondis, une solution de contournement consiste à utiliser android:en rayon définir une valeur par défaut coin de rayon supérieur à 1, mais ensuite remplacer chaque et chaque coin de rue avec les valeurs que vous voulez vraiment, fournissant zéro ("0dp") où vous ne voulez pas des coins arrondis.

E. g. vous devez définir un android:rayon="" pour être en mesure de faire ce que vous voulez:

<corners 
    android:radius="2dp"
    android:bottomRightRadius="0dp" 
    android:topRightRadius="0dp"/> 

Un autre PIÈGE, c'est que si vous faites ce genre de choses, l'aperçu dans eclipse n'est pas correct. Vous devez lancer votre application pour voir les résultats réels!

15voto

Moncader Points 2156

Vous pouvez également utiliser un nombre extrêmement faible de votre rayon.

<corners 
  android:bottomRightRadius="0.1dp" android:bottomLeftRadius="2dp" 
 android:topLeftRadius="2dp" android:topRightRadius="0.1dp" />

8voto

Loser Points 354

Ce bug est présentée ici. C'est un bug d'android dispositifs API de niveau inférieur à 12. Vous avez de mettre les versions correctes de votre mise en page dans drawable-v12 dossier qui sera utilisé pour l'API de niveau 12 ou plus. Et une version erronée(les angles de commutation/reprises) de la même disposition sera mis par défaut dans le dossier drawable qui sera utilisé par les périphériques ayant API de niveau inférieur à 12.

Par exemple: j'ai dû créer un bouton avec coins arrondis en bas à droite.

Dans "drawable" dossier - button.xml: j'ai eu à faire en bas à gauche de l'écran arrondi.

<shape>
    <corners android:bottomLeftRadius="15dp"/>
</shape>

Dans " drawable-v12 dossier - button.xml: version Correcte de la mise en page a été placé ici pour être utilisé pour l'API de niveau 12 ou plus.

<shape>
    <corners android:bottomLeftRadius="15dp"/>
</shape>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X