2013-01-16 9 views
22

W odniesieniu do tych pytań:Jak mogę dodać efekt gradientu do koloru tła TextView w ListView?

Adding gradient effect to TextView in a ListView generates NPE

i

How to change color and font on ListView

Chciałbym wiedzieć, jak go o ustawienie tła w TextView w ListView z mocą gradientu?

W jednym z powyższych pytań zakończyłem działanie efektu gradientu dodanego do tekstu w TextView. Po przejrzeniu drugiego pytania wydaje mi się, że mogę dodać tylko stałe kolory tła.

Jak przejść do dodawania gradientu do tła? Czy powinienem wykonać CustomListAdapter?

+0

http: // stackoverflow.com/a/1683195/1339473 to link może ci pomóc – QuokMoon

+0

[Kolor gradientu na Androidzie] (http://www.singhajit.com/gradient-color-in-android/) –

Odpowiedz

59

Wystarczy utworzyć zasób do rysowania (patrz przykład poniżej) i dodać go do układu utworzonego dla elementu ListItem.

odkształcalne (w twoich res \ odkształcalne folder - nazwać cokolwiek - listgrad.xml ex) mógłby wyglądać następująco:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
     android:startColor="@color/gradient_start" 
     android:endColor="@color/gradient_end" 
     android:angle="-270" /> 
</shape> 

należy dodać go do układu dla elementu listy (układ .xml plik można zdefiniować do tego) jak ten fragment kodu:

<TextView 
     android:id="@+id/ranking_order" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/list_grad" 
     /> 
... 
+0

Świetnie! Dzięki. :-) –

+0

dzięki, ale chcę tylko gradient dla textview nie backgroud. jak mogę zrobić? – saigopi

1

Zaproszony stąd: How do I create a ListView with rounded corners in Android? (Zauważyłem, że jest bardzo użyteczny).

Dodaj do pliku następujący plik (na przykład gradient.xml), a następnie umieść go w katalogu (res/drawable/gradient.xml).

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <gradient 
     android:startColor="#SomeGradientBeginColor" 
     android:endColor="#SomeGradientEndColor" 
     android:angle="270"/> 

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

Gdy skończysz z tworzenia tego pliku, wystarczy ustawić tło w jeden z następujących sposobów:

poprzez kod: listView.setBackgroundResource(R.drawable.customshape);

poprzez XML, wystarczy dodać następujący atrybut do kontenera (ex: LinearLayout lub do wszelkich polach):

android:background="@drawable/customshape" 
4

Po utworzeniu gradient można zastosować go do prawie wszystko niech będzie textV iew, układ lub przycisk.

Aby zrozumieć, jak utworzyć i użyć gradientu, należy zapoznać się z instrukcją this link.

Aby utworzyć gradient trzeba dodać ją do katalogu poniżej

enter image description here

kodują gradientu byłoby coś takiego -

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <gradient 
       android:startColor="#ff2d9a59" 
       android:centerColor="#ff42959a" 
       android:endColor="#ff23729a" 
       android:angle="135"/> 
     </shape> 
    </item> 
</selector> 
Powiązane problemy