• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Android: icone con lettere in stile Material

By Giuseppe Maggi | on 23 Agosto 2017 | 0 Comment
Android
MaterialLetterIcon

Quando si mostrano dati in una ListView o RecyclerView, è attualmente di uso comune accompagnare ognuna di esse con un’icona all’estrema sinistra che, in molti casi, consiste in lettere incluse in un cerchio colorato. Queste lettere spesso rappresentano semplicemente l’iniziale del testo che segue e la loro realizzazione con gli strumenti che Android nativamente fornisce non è molto complicata: esiste però una libreria che rende ancora più semplice questo lavoro ed in questo post ve la presentiamo.

Risponde al nome di MaterialLetterIcon ed è sufficiente la seguente direttiva Gradle inserita tra le dipendenze per averla a disposizione:

compile 'com.github.ivbaranov:materiallettericon:0.2.2'

L’immagine mostra un esempio di quanto possiamo realizzare molto velocemente:

Ad esempio, costruiamo il layout dell’Activity con una ListView

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

e collochiamo il widget della libreria in un altro layout che modella la singola riga:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp">

    <com.github.ivbaranov.mli.MaterialLetterIcon
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_centerVertical="true"
        android:id="@+id/icon"
        android:layout_marginRight="16dp"/>

    <TextView android:id="@+id/contact"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/icon"
        android:textSize="20sp"/>

</RelativeLayout>

Il codice Java dell’onCreate modellerà l’interfaccia inserendo dati in un ArrayAdapter collegato alla ListView e valorizzando la MaterialLetterIcon con la prima lettera della stringa:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView l= (ListView) findViewById(R.id.listview);
        ArrayAdapter<String> adapter=
                new ArrayAdapter<String>(this, R.layout.row_layout, R.id.contact, new ArrayList<String>())
                {
                    int[] colors=
                            new int[]{
                                    R.color.green,
                                    R.color.orange,
                                    R.color.indigo
                            };
                    @NonNull
                    @Override
                    public View getView(int position, View convertView, ViewGroup parent) {
                        View v=super.getView(position, convertView, parent);
                        MaterialLetterIcon letterIcon= 
                            (MaterialLetterIcon) v.findViewById(R.id.icon);
                        String contact=getItem(position);
                        letterIcon.setLetter(contact.substring(0,1));
                        letterIcon.setShapeColor(ContextCompat.getColor(MainActivity.this, colors[position%colors.length]));
                        return v;
                    }
                };

        l.setAdapter(adapter);

        adapter.add("Rossi Gianluca");
        adapter.add("Bianchi Enrico");
        adapter.add("Verdi Luciana");
        adapter.add("Rossi Anna");
        adapter.add("Neri Gianluca");
        adapter.add("Gialli Silvia");
        adapter.add("Verdi Simone");
    }

 

Per quanto riguarda i colori, abbiamo creato alcune risorse e, a giro, ne viene usato uno per colorare lo sfondo dell’icona: ovviamente, si possono scegliere politiche più fantasiose.

Le icone possono essere utilizzate anche esclusivamente con codice Java come si vede nell’esempio fornito nell’hompage del progetto:

MaterialLetterIcon icon = new MaterialLetterIcon.Builder(context) //
            .shapeColor(getResources().getColor(R.color.circle_color))
            .setShapeType(SHAPE.CIRCLE)
            .letter("S")
            .letterColor(getResources().getColor(R.color.letter_color))
            .letterSize(26)
            .lettersNumber(1)
            .letterTypeface(yourTypeface)
            .initials(false)
            .initialsNumber(2)
            .create();

Si possono inoltre personalizzare in ogni aspetto – dai colori, al numero di lettere mostrate fino alla forma dell’icona stessa – seguendo le istruzioni fornite dallo sviluppatore: ogni caratteristica sarà assegnabile con un proprio metodo setter.

Provate questa libreria e diteci cosa ne pensate. Alla prossima!

Share this story:
  • tweet

Tags: androidlibrerie androidMaterialLetterIcon

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • IntelliJ IDEA: IDE per programmare in Java e Kotlin

    25 Luglio 2018 - 0 Comment
  • Android: usare Connect Pattern

    10 Luglio 2018 - 0 Comment
  • Android: il metodo findViewById() non richiede più il cast

    21 Giugno 2018 - 0 Comment

Author Description

No Responses to “Android: icone con lettere in stile Material”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO