web-dev-qa-db-fra.com

Comment définir la bordure de GridView sur Android

Comment définir la bordure de GridView.
Comme Divider et DividerHeight of ListView.
.__ Ou comment afficher la bordure. 

9
brian

Voici quelques exemples de bordures dans un GridView. 

GridView Borders

Vous pouvez voir où j'ai défini les bordures rouge et bleue dans mon XML.

Ceci est ma mise en page main.xml:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:id="@+id/root"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="@color/red" >

    <GridView
        Android:id="@+id/gridview"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_margin="10dp"
        Android:background="@color/blue"
        Android:columnWidth="90dp"
        Android:gravity="center"
        Android:horizontalSpacing="10dp"
        Android:numColumns="auto_fit"
        Android:stretchMode="columnWidth"
        Android:verticalSpacing="10dp"
         />

</RelativeLayout>

L'épaisseur de la bordure rouge est contrôlée par l'attribut layout_margin de GridView et les bordures bleues sont contrôlées par horizontalSpacing et verticalSpacing.

Pour créer les arrière-plans des cellules noires, j’ai utilisé cette présentation et l’ai enregistrée sous le nom list_item.xml:

<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@Android:id/text1"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="@Android:color/black"
    Android:gravity="center_vertical"
    Android:minHeight="?android:attr/listPreferredItemHeight"
    Android:paddingLeft="6dip"
    Android:textAppearance="?android:attr/textAppearanceLarge" />

Mon activité:

public class Example extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        String[] array = new String[] {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
        List<String> list = new ArrayList<String>(Arrays.asList(array));
        GridView grid = (GridView) findViewById(R.id.gridview);
        grid.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, list));
    }
}
37
Sam

utilisez le fichier XML ci-dessous comme arrière-plan dans le fichier XML d'élément de grille.

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <solid Android:color="@Android:color/transparent" />
    <corners
        Android:bottomRightRadius="12dp"
        Android:bottomLeftRadius="12dp"
        Android:topLeftRadius="12dp"
        Android:topRightRadius="12dp" />
    <stroke
        Android:color="@Android:color/white"
        Android:width="1dp" />
</shape>
12
Ganesh Katikar

Créez grid_row_border.xml dans le dossier res/drawable.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <solid Android:color="@Android:color/transparent" />
    <corners
        Android:bottomRightRadius="5dp"
        Android:bottomLeftRadius="5dp"
        Android:topLeftRadius="5dp"
        Android:topRightRadius="5dp" />
    <stroke
        Android:color="@color/material_grey_600"
        Android:width="1dp" />
</shape>

Maintenant, utilisez ceci dans votre grille XML comme ci-dessous

Android:background="@drawable/grid_row_border"

Fournissez un rembourrage [Android: padding = "5dp"] et une marge [Android: layout_margin = "5dp"] pour une meilleure apparence.

4
Lucky

J'ajoute ces vues autour de l'image de ma galerie dans la ligne d'image xml:

<View
    Android:layout_width="@dimen/listGalleryItemWidthLarge"
    Android:layout_height="2dip"
    Android:layout_above="@+id/gallery_row_iv"
    Android:layout_centerHorizontal="true"
    Android:background="#FFFFFF" />

<View
    Android:layout_width="@dimen/listGalleryItemWidthLarge"
    Android:layout_height="2dip"
    Android:layout_below="@+id/gallery_row_iv"
    Android:layout_centerHorizontal="true"
    Android:background="#FFFFFF" />

<View
    Android:layout_width="2dip"
    Android:layout_height="@dimen/listGalleryItemHeightLarge"
    Android:layout_centerVertical="true"
    Android:layout_toRightOf="@+id/gallery_row_iv"
    Android:background="#FFFFFF" />

<View
    Android:layout_width="2dip"
    Android:layout_height="@dimen/listGalleryItemHeightLarge"
    Android:layout_centerVertical="true"
    Android:layout_toLeftOf="@+id/gallery_row_iv"
    Android:background="#FFFFFF" />
  • Notez que j'utilise une mise en page et un adaptateur personnalisés pour mon GridView
0
Amjad Abu Saa