2015-08-07 12 views
6

Muszę wyświetlić imię i nazwisko osoby kontaktowej w środku koła, tak jak w kontaktach typu Lollipop. Nie znalazłem żadnego rozwiązania.Wyświetlanie nazwy kontaktu z początkową literą w kółku

Krąg powinien mieć inny kolor dla każdego użytkownika.

+0

co dotychczas próbowaliście? –

+0

Starałem się zrobić to na zamówienie, ale szukałem wskazówek w projektowaniu materiałów, ponieważ aplikacja jest tworzona dla lollipopa. – Sudhanshu

+0

Głosuję, aby zamknąć to pytanie jako nietypowe, ponieważ nie jesteśmy usługą pisania kodu. Powinieneś dołożyć wszelkich starań, aby samemu rozwiązać problem, a następnie zadaj pytanie, gdy masz konkretny problem. –

Odpowiedz

25

Możesz śledzić this. Jeśli chcesz zaoszczędzić czas, możesz użyć biblioteki this.

Edit

Łącze może być nieważny dowolnym momencie. Więc chcę dodać szczegóły poniżej.

repositories{ 
    maven { 
    url 'http://dl.bintray.com/amulyakhare/maven' 
    } 
} 

dependencies { 
    compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' 
}  

Możesz dodać, którą z metodologii obserwujesz.

Zasadniczo trzeba dodać jedną taką samą wysokość i szerokość i dodać tę TextDrawable jako tło widoku.

TextDrawable drawable = TextDrawable.builder() 
      .buildRect("A", Color.RED); 
ImageView image = (ImageView) findViewById(R.id.image_view); 
image.setImageDrawable(drawable);  

Biblioteka posiada wsparcie dla circle, square i rectangle kanału alfa.

+0

Chociaż jest to potencjalnie całkiem dobra odpowiedź, jest to w zasadzie odpowiedź "tylko link". Powinieneś zamieścić pewne informacje z twoich linków, aby jeśli informacje zawarte w linkach zostały zmienione/utracone, odpowiedź nadal ma sens. Zobacz [ten link] (http://meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-when-is-an-answer-not-an-answer) –

+0

Dzięki za twój sugestie @JamesWebster. – ImMathan

+0

@ImMathan to znacznie lepsza odpowiedź. Odwróciłem mój głos i wznowiłem –

3

nie widzę żadnej biblioteki dla tego, ale moje rozwiązanie jest narysować okrąg w czasie wykonywania w określonym układzie w swojej xml użyj: How to draw circle by canvas in Android?

Następnie w swoim liście adaptera wybierz pierwszą literę nazwy każdego ciąg znaków za pomocą podłańcuchów (0,1) , a za pomocą setText() można ustawić tekst pozycji listy na pierwszą literę. Jeśli potrzebujesz kodu źródłowego, daj mi znać, aby go umieścić.

UPDATE: Niedawno używane bardzo łatwy podejście do tego w jednym z moich aplikacji, należy zrobić układ jak ten w folderze układ:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rlWeekDay" 
    android:layout_width="45dp" 
    android:layout_height="45dp" 
    android:layout_gravity="right" 
    android:layout_margin="3dp" 
    android:background="@drawable/circle_shape"> 

<TextView 
    android:id="@+id/tvWeekDayFirstLetter" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:text=" E " 
    android:textStyle="bold" 
    android:textColor="@color/colorPrimary" 
    android:textSize="20sp" /> 
</RelativeLayout> 

A twój kształt rozciągliwej folderze, circle_shape.xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="oval" 
      android:dither="true"> 

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

     <solid android:color="#ccc" /> 

    </shape> 
</item> 
<item android:bottom="3dp"> 
<shape android:shape="oval" 
    android:dither="true"> 
<solid android:color="@color/white"/> <!-- this one is ths color of the Rounded Button --> 
<corners 
    android:bottomRightRadius="100dp" 
    android:bottomLeftRadius="100dp" 
    android:topLeftRadius="100dp" 
    android:topRightRadius="100dp"/> 



</shape> 
    </item> 
    </layer-list> 

Następnie w ListView lub stosowania niniejszego recyclerview jako elementu do inflate.like ten enter image description here

+0

Czy możesz podzielić się tym kodem, aby uzyskać więcej pomocy? –

+1

@AlokRajasukumaran Rajasukumaran sprawdź AKTUALIZACJĘ podaną. –

Powiązane problemy