2011-01-01 16 views
25

Chcę utworzyć formularz i umieścić dzielnik między każdym elementem formularza, a ja chcę, aby dzielnik miał taki sam styl jak to, co jest domyślne dla ListView na platformie.Jak mogę uzyskać domyślny dzielnik?

Czy mogę w jakiś sposób uzyskać dostęp do informacji o domyślnym rozdzielaczu dla ListView i użyć go do mojego formularza?

Odpowiedz

63

Jak to się robi w some Android sources

<View 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?android:attr/listDivider" /> 
+0

można naprawić link, proszę? – Maxim

+0

Co powiesz na temat stylu "Holo"? W ten sposób jest on ciemnoszary zamiast niebieskiego. – Maxim

+1

Ale, o ile widzę, dzielniki na ICS są ciemnoszare. – Michael

6

To jak to zrobić

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="1dp" 
    android:scaleType="fitXY" 
    android:src="?android:attr/listDivider" /> 
2

Aby uzyskać domyślnie poziomej dzielnika z kodu możesz użyć:

final TypedArray array = getContext().getTheme().obtainStyledAttributes(
      R.style.<some_theme>, new int[] { 
       android.R.attr.dividerHorizontal 
      }); 
    final int defaultDivider = array.getResourceId(0, 0); 
    final Bitmap dividerBitmap = BitmapFactory.decodeResource(r, defaultDivider); 
    final BitmapDrawable divider = new BitmapDrawable(r, dividerBitmap); 

Następnie , aby również narysować ją samodzielnie na Canvas w onDraw:

divider.setBounds(X, Y, X + width, Y + height); 
divider.draw(canvas); 
10

ten dostanie domyślnej listy dzielnik, który pasuje do tematu Zastosowania:

int[] attrs = { android.R.attr.listDivider }; 
TypedArray ta = getApplicationContext().obtainStyledAttributes(attrs); 
//Get Drawable and use as needed 
Drawable divider = ta.getDrawable(0); 
//Clean Up 
ta.recycle(); 
+0

Dzięki, właśnie tego potrzebuję! – nekavally

Powiązane problemy