2013-05-01 4 views
17

मेरे पास एंड्रॉइड ListView के लिए एक कस्टम सेल है। यह कस्टम सेल अंदर के कुछ विचारों के साथ एक सापेक्ष लेआउट है। प्रत्येक सेल के बीच एक जगह है, इसलिए मैं कोशिकाओं के नीचे एक छाया जोड़ना चाहता हूं।मैं ListView के प्रत्येक सेल में छाया कैसे सेट कर सकता हूं?

मैं चारों ओर गुगल रहा हूं लेकिन कुछ भी नहीं मिला?

enter image description here

धन्यवाद: मैं इस के समान कुछ हासिल करना चाहते हैं!

+0

हम हमेशा कलाकृति के साथ ऐसी बातें किया है। प्रोग्रामर का सबसे आसान तरीका आपके इच्छित आकार के करीब कुछ बनाना होगा जिसमें रंग, सफेद पैनल और छाया शामिल है। फिर बस इसे वहां रखें।वैकल्पिक रूप से आप प्रत्येक टुकड़ा - रंग पट्टी, सफेद पैनल और कला के अलग टुकड़ों के रूप में छाया हो सकता है, और उन्हें एक एक्सएमएल में एक साथ टुकड़ा कर सकते हैं। – HalR

+0

आपके उत्तरों के लिए धन्यवाद दोस्तों! @StephanBranczyk जो मैं पूछ रहा हूं वह है कि पंक्तियों के छाया प्रभाव को कैसे बनाया जाए। मैंने जो छवि संलग्न की है, उसमें आप प्रत्येक पंक्ति के नीचे देख सकते हैं कि एक छोटा सा छाया प्रभाव है ... – Andres

उत्तर

37

दो तरीके नीचे में किया जा सकता है:

  1. 9-पैच छवियों - 9 समझने पैच
  2. परत-सूची का उपयोग के लिए क्लिक करें link - में "रेस/drawable" जो होता है नई फ़ाइल बनाएं:

    <?xml version="1.0" encoding="utf-8"?> 
        <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
        <item > 
         <shape 
          android:shape="rectangle"> 
           <solid android:color="@android:color/darker_gray" /> 
           <corners android:radius="5dp"/> 
         </shape> 
        </item> 
        <item android:right="1dp" android:left="1dp" android:bottom="2dp"> 
         <shape 
          android:shape="rectangle"> 
           <solid android:color="@android:color/white"/> 
           <corners android:radius="5dp"/> 
         </shape> 
        </item> 
        </layer-list> 
    

तब पृष्ठभूमि के रूप में इस परत-सूची फ़ाइल अपने सूची आइटम लेआउट में (LinearLayout या आदि अर्थात्।, ..) जोड़ें।

+0

यह वही है जो मैं ढूंढ रहा था !! आपको बहुत - बहुत धन्यवाद! – Andres

+0

धन्यवाद .... सही उत्तर – nitin

+0

कूल, दूसरा काम – antongorodezkiy

2

सबसे आसान तरीका निश्चित रूप से 9-पैच में छाया बनाने के लिए है। कुछ इस तरह का एक उदाहरण है:

Box 9-Patch

इस तरह से बड़ा यह होने की जरूरत है, एक 9-पैच के रूप में, लेकिन मैं इसे उदाहरण के लिये बड़ा बनाना चाहते थे।

1

मैं अभी तक अपने सटीक परिदृश्य का परीक्षण नहीं किया है, लेकिन यह कैसे आप सूची दृश्य के लिए एक पारदर्शी विभक्त जोड़ना होगा है:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <ListView 
    android:id="@+id/android:list" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="4dip"/> 

</LinearLayout> 

अगर आप छाया पंक्ति जोड़ना चाहते थे आप की आवश्यकता होगी क्या है प्रोग्राम के रूप में।

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="@android:color/transparent" /> 
    <stroke 
     android:layout_marginLeft="10dip" 
     android:layout_marginRight="10dip" 
     android:width="match_content" 
     android:color="@color/black" /> 
    <size android:height="1dp" /> 
</shape> 

स्ट्रोक का रंग अल्फा परत के शीर्ष पर प्रस्तुत होने के बाद से काले रंग के रूप में दिखाई नहीं दे सकता है। इसके अलावा, यह वर्तमान में नीचे की ओर न केवल आयताकार के चार किनारों को खींचता है। (मुझे उन दो मुद्दों पर कुछ और शोध करना होगा)।

यह tutorial देखें यदि आपको यह समझने में मदद की ज़रूरत है कि इसे एक साथ कैसे तारित किया जाए।

2

मैं अपने सूची आइटम लेआउट में पृष्ठभूमि के रूप में इस layerlist लागू होते हैं, चयनित रंग अक्षम किया गया है ....

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item > 
     <shape 
      android:shape="rectangle"> 
       <solid android:color="@android:color/darker_gray" /> 
       <corners android:radius="5dp"/> 
     </shape> 
    </item> 
    <item android:right="1dp" android:left="1dp" android:bottom="2dp"> 
     <shape 
      android:shape="rectangle"> 
       <solid android:color="@android:color/white"/> 
       <corners android:radius="5dp"/> 
     </shape> 
    </item> 
    </layer-list> 
1

एक layerlist आयत कि नीचे से बाहर शिखर बनाएँ और अपने सेल दृश्य के लिए अपने मुख्य पृष्ठभूमि सेट अपने एक्सएमएल में रंग।

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!--shadow to bottom and right--> 
    <!--by pushing offset from top and left--> 
    <!--then set foreground-color in android:background in xml--> 
    <item 
     android:left="2dp" 
     android:right="0dp" 
     android:top="2dp" 
     android:bottom="0dp"> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@android:color/darker_gray" /> 
     </shape> 
    </item> 
</layer-list> 

in your cell.xml: 

<RelativeLayout 
    android:layout_width="match_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/shadow"> 

    <RelativeLayout 
     android:id="@+id/cell_stuff" 
     android:layout_width="match_content" 
     android:layout_height="match_content" 
     android:background="@android:color/holo_orange_light"> 

     <!--cell stuff--> 

    </RelativeLayout> 

</RelativeLayout> 

या सब-इन-वन

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!--shadow to bottom and right--> 
    <!--by pushing offset from top and left--> 
    <item 
     android:left="2dp" 
     android:right="0dp" 
     android:top="2dp" 
     android:bottom="0dp"> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@android:color/darker_gray" /> 
     </shape> 
    </item> 
    <!--foreground-color to cover over non-shadow--> 
    <!--need to also offset in opposite direction--> 
    <item 
     android:left="0dp" 
     android:right="2dp" 
     android:top="0dp" 
     android:bottom="2dp"> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@android:color/holo_orange_light"/> 
     </shape> 
    </item> 
</layer-list> 

in your cell.xml: 

<RelativeLayout 
    android:layout_width="match_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/shadow_allinone"> 

    <!--cell stuff--> 

</RelativeLayout> 

enter image description here

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

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