2013-11-01 6 views
8

मैं एक कस्टम एंड्रॉइड व्यू बनाने की कोशिश कर रहा हूं और एक परत-सूची है जो पृष्ठभूमि खींचने योग्य है।लेयर-लिस्ट पृष्ठभूमि के साथ कस्टम व्यू ड्रॉइंग ब्लैक स्क्रीन

परत-सूची दो आइटम नहीं है:

  1. एक पृष्ठभूमि रंग (सफेद)
  2. एक साधारण आकार drawable गोल-कोनों के साथ एक stroked आयत है कि

यहाँ drawable एक्सएमएल है :

<?xml version="1.0" encoding="utf-8"?> 

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@android:color/white"/> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <corners android:radius="1dp" /> 
      <stroke 
       android:width="2dp" 
       android:color="@color/background_green" /> 
     </shape> 
    </item> 
</layer-list> 

कस्टम व्यू Android.view से क्लास डार्टिंग है। उस curr को देखें आवश्यक मापने वाले अधिभार को छोड़कर एंटरली में कोई कार्यक्षमता नहीं है।

मैं एक गतिविधि लेआउट में दृश्य परिभाषा पृष्ठभूमि लागू करने हूँ:

<view 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    class="com.example.widget.TestView" 
    android:id="@+id/view2" 
    android:layout_gravity="center_horizontal" 
    android:background="@drawable/rect_sig_cap" 
    android:layout_margin="20dp" /> 

क्या मैं देखने की उम्मीद एक सफेद पृष्ठभूमि और एक हरे रंग की सीमा के साथ एक दृश्य है। मैं वास्तव में देखता हूं कि जब मैं परियोजना को तैनात करता हूं तो एक काला पृष्ठभूमि और हरी सीमा के साथ एक दृश्य है।

दिलचस्प बात यह एंड्रॉइड स्टूडियो में डिजाइनर पूर्वावलोकन में सही ढंग से दिखाई देती है। यह केवल तभी होता है जब मैं इसे किसी डिवाइस पर तैनात करता हूं जो काला रंग प्रदान करता है।

क्या मुझे यहां कुछ स्पष्ट याद आ रही है?

उत्तर

17

रुचि रखने वालों के लिए, मुझे समाधान मिला।

मैंने केवल स्ट्रोक परिभाषा समेत आरेखण को परिभाषित किया था। किसी भी अन्य इनपुट के बिना, इससे भरने वाले रंग को काले रंग के रूप में अनुमानित किया जाता है।

अंत में, एक लेयर-लिस्ट ड्रायबल की आवश्यकता नहीं है। इसके बजाय, solid रंग पारदर्शी के साथ आकृति परत को परिभाषित करें और यह ठीक काम करता है।

<?xml version="1.0" encoding="utf-8"?> 

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners android:radius="@dimen/corner_radius" /> 
    <stroke android:width="1dp" 
     android:color="@color/background_green" /> 
    <solid android:color="@android:color/transparent" /> 
</shape> 
संबंधित मुद्दे