2011-01-01 9 views
25

Desidero creare un modulo e inserire un divisore tra ogni elemento del modulo e voglio che il divisore abbia lo stesso stile di quello predefinito per ListView sulla piattaforma.Come posso ottenere il divisore predefinito?

Posso accedere in qualche modo alle informazioni sul divisore predefinito per ListView e utilizzarlo per il mio modulo?

risposta

63

Questo è come si fa a some Android sources

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

Riesci a riparare il link, per favore? – Maxim

+0

Che ne dici dello stile "Holo" se lo sai? In questo modo è grigio scuro anziché blu. – Maxim

+1

Ma, per quanto posso vedere, i divisori sul ICS sono grigio scuro. – Michael

6

Questo è come lo faccio

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

Per ottenere difetto di divisione orizzontale dal codice è possibile utilizzare:

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); 

Poi , per disegnare anche tu stesso su un Canvas in onDraw:

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

questo otterrà la lista di divisione di default che corrisponde al tuo applicazioni tema:

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

Grazie, proprio quello di cui ho bisogno! – nekavally

Problemi correlati