2011-11-03 5 views
3

Je développe une application, et j'ai besoin de dessiner des bordures et des séparateurs sur une vue, comme l'application eBay.Comment dessiner des bordures et des séparateurs sur une vue

Je pense à une combinaison de formes et de vue avec 1dp. Il y a un autre moyen facile?

ebay App. Merci beaucoup.

+0

Allez-vous utiliser un ListView ou Views dans LinearLayout? – Gallal

+0

+ Gallal, im essayant d'utiliser des vues à l'intérieur d'un LinearLayout. – Chronos

Répondre

1

Créez une image de 9 pièces pour la bordure extérieure. Utilisez-le comme ressource de fond et il vous donnera les coins arrondis avec une bordure solide. Pour les diviseurs, vous pouvez créer une vue simple et avoir une autre ressource d'arrière-plan qui est une image simple de la même couleur que la bordure du 9-patch.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
     android:orientation="vertical"> 

    <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/roundedborder" 
      android:orientation="vertical"> 

     <!-- Put Saved Searches display code here. Probably LinearLayout/horizonal --> 
     <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="1dp" 
       android:background="@drawable/simpleborder" 
       android:layout_margin="3dp"/> <!-- Spacer! --> 

     <!-- Put Favorite sellers display code here. Probably LinearLayout/horizonal --> 

    </LinearLayout> 

</LinearLayout> 
+0

Merci, il semble que c'est la façon la plus facile! – Chronos

0

ou vous pourriez utiliser des marges en bas, pour la vue qui est juste au-dessus de l'espace vide.

android:layout_marginBottom="1dp" 
+0

@downvoter, soin d'expliquer?, J'expliquais une alternative pour une vue avec 1dp hauteur. –

0

Si vous voulez dire la façon dont les vues sont regroupées de sorte que certains ont des coins courbes sur le dessus, d'autres dans le fond ainsi que le rembourrage ou une marge, et d'autres sans coins arrondis à tous, alors c'est une façon de fais le.

Si vous utilisez ListView avec ListAdapter, alors lors de la substitution getView(int position, View convertView, ViewGroup parent) déterminez à partir de position quelle vue doit être renvoyée et renvoyez-la. Vous pouvez modifier le remplissage et les marges de la vue avant de le renvoyer. De plus, il sera plus efficace de surcharger getItemViewType(int position) et de renvoyer une représentation constante d'un type de vue pour une position spécifique afin qu'Android puisse réutiliser des vues et que vous n'ayez pas à en gonfler une nouvelle ou à changer les attributs à chaque fois.

+0

Im essayant d'utiliser des vues à l'intérieur d'un LinearLayout. Mais je garderai cette réponse pour les développements futurs, merci! – Chronos

Questions connexes