2011-01-01 17 views
25

मैं एक फॉर्म बनाना चाहता हूं और प्रत्येक फॉर्म तत्व के बीच विभाजक रखना चाहता हूं, और मैं चाहता हूं कि विभाजक को प्लेटफॉर्म पर ListView के लिए डिफ़ॉल्ट के समान शैली के समान होना चाहिए।मैं डिफ़ॉल्ट विभाजक कैसे प्राप्त कर सकता हूं?

क्या मैं किसी भी तरह ListView के लिए डिफ़ॉल्ट विभाजक के बारे में जानकारी एक्सेस कर सकता हूं और इसे अपने फॉर्म के लिए उपयोग कर सकता हूं?

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

तब:

उत्तर

63

करना यह है कि यह कैसे some Android sources

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

आप लिंक को ठीक कर सकते हैं, कृपया? – Maxim

+0

यदि आप जानते हैं तो "होलो" शैली के बारे में कैसे? इस तरह से यह नीले रंग के बजाय गहरा भूरा है। – Maxim

+1

लेकिन, जहां तक ​​मैं देख सकता हूं, आईसीएस पर डिवाइडर गहरे भूरे हैं। – Michael

6

यह मैं इसे कैसे

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

में हो जाने पर आप इस्तेमाल कर सकते हैं कोड से क्षैतिज विभक्त डिफ़ॉल्ट प्राप्त करने के लिए है , इसे Canvas पर onDraw में स्वयं को आकर्षित करने के लिए:

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

यह डिफ़ॉल्ट सूची विभक्त है कि आपके एप्लिकेशन थीम से मेल खाता मिल जाएगा:

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

धन्यवाद, बस मुझे क्या चाहिए! – nekavally

संबंधित मुद्दे