2013-01-16 34 views
22

संदर्भ में इन सवालों के:मैं ListView में TextView के पृष्ठभूमि रंग में ढाल प्रभाव कैसे जोड़ सकता हूं?

Adding gradient effect to TextView in a ListView generates NPE

और

How to change color and font on ListView

मैं ग्रेडिएंट प्रभाव के साथ एक ListView में एक TextView की पृष्ठभूमि करने के बारे में जाने के लिए कैसे पता करने के लिए चाहते हैं?

उपरोक्त प्रश्नों में से एक में, मैंने TextView में पाठ में ढाल प्रभाव को जोड़ा। और दूसरे प्रश्न के माध्यम से skimming के बाद, ऐसा लगता है कि मैं केवल निश्चित पृष्ठभूमि रंग जोड़ सकते हैं।

मैं पृष्ठभूमि में ढाल जोड़ने के बारे में कैसे जा सकता हूं? क्या मुझे CustomListAdapter बनाना चाहिए?

+0

http: // stackoverflow।कॉम/ए/16831 9 5/1339473 यह लिंक आपकी मदद कर सकता है – QuokMoon

+0

[एंड्रॉइड में ग्रेडियंट रंग] (http://www.singhajit.com/gradient-color-in-android/) –

उत्तर

59

आपको केवल एक खींचने योग्य संसाधन बनाने की आवश्यकता है (नीचे एक उदाहरण देखें), और इसे अपनी सूची के लिए बनाए गए लेआउट में जोड़ें।

drawable (अपने रेस में \ drawable फ़ोल्डर - यह नाम जो कुछ भी - पूर्व के लिए listgrad.xml) दिखाई देगा: लेआउट

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

, जिसे आप अपनी सूची में आइटम के लिए लेआउट के लिए यह जोड़ना होगा (इस कोड स्निपेट की तरह आप इस के लिए परिभाषित फ़ाइल .xml):

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

ग्रेट! धन्यवाद। :-) –

+0

धन्यवाद लेकिन मैं टेक्स्टव्यू के लिए केवल ढाल चाहता हूं बैकग्राउड नहीं। मैं कैसे कर सकता हूँ? – saigopi

1

यहां से भेजा: How do I create a ListView with rounded corners in Android? (मुझे यह बहुत उपयोगी पाया गया है।)

फ़ाइल में निम्न जोड़ें (gradient.xml कहें) और फिर इसे (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> 

एक बार जब आप इस फाइल को बनाने का कार्य पूरा हो, बस निम्न तरीकों में से एक में पृष्ठभूमि सेट: listView.setBackgroundResource(R.drawable.customshape);

एक्सएमएल के माध्यम से, बस कंटेनर में निम्नलिखित एट्रीब्यूट जोड़ने:

कोड के माध्यम से (पूर्व: LinearLayout या किसी क्षेत्र के लिए):

android:background="@drawable/customshape" 
4

बार जब आप एक ढाल बनाने आप इसे लागू कर सकते हैं काफी कुछ भी यह textV हो जाने के लिए iew, लेआउट या बटन।

ग्रेडियेंट को बनाने और उपयोग करने के तरीके को समझने के लिए this link देखें।

एक ढाल आप नीचे दिए गए निर्देशिका

enter image description here

कोड में जोड़ने के लिए की जरूरत बनाने के लिए ढाल कुछ इस तरह किया जाएगा के लिए -

<?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>