2009-06-03 16 views
5

graficzny projektant aplikacji na Androida, które mam obecnie budynek ma pochodzić z linii dwukolorowej jako separatora między elementami w pudełku układ:dwukolorowej linia pozioma w Androidzie

two-color separator line http://img7.imageshack.us/img7/3351/twocolorline.png

Jeśli przyjrzysz się uważnie obrazowi, zobaczysz ciemno-szarą linię, a tuż pod nim linia bardzo jasnoszara (prawie biała). Linie powinny zmienić rozmiar na szerokość kontenera.

Jaki jest najlepszy sposób wdrożenia tego w interfejsie użytkownika?

Odpowiedz

11

Najlepszym rozwiązaniem jest, aby przekonwertować obraz został pokazany jako 9-patch, dodać go do folderu res/rozciągliwej jako zasób i wyświetlić go w układzie stosując ImageView ustawienie android:width="fill_parent".

Obrazy 9-krosowe umożliwiają określenie obszaru obrazu, który ma się rozciągać podczas zmiany rozmiaru obrazu (w tym przypadku całego obrazu - chociaż warto rozważyć "zanikanie" linii na jej krawędziach, aby dostosować ją do natywnych stylów Androida).

obrębie układu złożyć definicja ImageView będzie wyglądać mniej więcej tak:

<ImageView 
    android:src="@drawable/my_separater_nine_patch" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:scaleType="fitXY" 
/> 
1

można utworzyć 2 widoki, po jednej dla każdej linii, ustawić kolor tła tego celu co chcesz kolory do be, a następnie ustaw wartość 1px, a szerokość na "fill_parent". Zaletą tej metody w porównaniu z 9 łatami jest brak konieczności ładowania zasobu i dynamiczne zmienianie kolorów zgodnie z potrzebami użytkownika. Minusem jest to, że tworzysz kilka dodatkowych obiektów układu.

3
<ImageView android:layout_width="match_parent" android:id="@+id/line1" 
      android:layout_height="1dp" android:background="#FFFFFF" 
      android:layout_weight="1" android:layout_marginTop="5dp" 
      android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" 
     android:layout_marginRight="5dp"/> 

wkładka wewnątrz widoku LinearLayout

7

Jeśli nie chcesz korzystać z 9-poprawki, można spróbować LayerList.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape > 
      <solid android:color="#ffffff" /> 
     </shape> 
    </item> 
    <item android:bottom="1px"> 
     <shape > 
      <solid android:color="#252525" /> 
     </shape> 
    </item> 

</layer-list>