android - नीचे स्ट्रोक के साथ एंड्रॉइड आकार




android-layout android-drawable (8)

अगले एक्सएमएल ड्रायबल कोड आज़माएं:

    <layer-list>
        <item android:top="-2dp" android:right="-2dp" android:left="-2dp">
            <shape>
                <solid android:color="@android:color/transparent" />
                <stroke
                    android:width="1dp"
                    android:color="#fff" />
            </shape>
        </item>
    </layer-list>

मुझे एक एंड्रॉइड आकार बनाने की ज़रूरत है ताकि केवल नीचे स्ट्रोक (एक धराशायी रेखा) हो। जब मैं निम्नलिखित का प्रयास करता हूं, तो स्ट्रोक केंद्र के माध्यम से आकार को सही ढंग से विभाजित करता है। क्या कोई जानता है कि इसे कैसे प्राप्त किया जाए? स्ट्रोक को नीचे की रेखा / सीमा होना चाहिए। मैं एक टेक्स्टव्यू के लिए पृष्ठभूमि के रूप में आकार का उपयोग कर रहा हूँ। कृपया, कभी भी ध्यान न दें कि मुझे इसकी आवश्यकता क्यों है।

<?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="#1bd4f6" />
        </shape>
    </item>

    <item>
        <shape android:shape="line" >
            <padding android:bottom="1dp" />

            <stroke
                android:dashGap="10px"
                android:dashWidth="10px"
                android:width="1dp"
                android:color="#ababb2" />
        </shape>
    </item>

</layer-list>

आम तौर पर समान कार्यों के लिए - मैंने इस तरह की परत-सूची को खींचने योग्य बनाया:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
        <solid android:color="@color/underlineColor"/>
        </shape>
    </item>
<item android:bottom="3dp">
    <shape android:shape="rectangle">
        <solid android:color="@color/buttonColor"/>
    </shape>
</item>

विचार यह है कि सबसे पहले आप अंडरलाइन रंग के साथ आयताकार खींचते हैं और फिर इसके शीर्ष पर आप वास्तविक बटन रंग के साथ एक और आयत खींचते हैं लेकिन नीचे पैडिंग लागू करते हैं। यह हमेशा काम करता है।

लेकिन जब मुझे बटन रंग पारदर्शी होने की आवश्यकता होती है तो मैं उपर्युक्त ड्रॉइंग का उपयोग नहीं कर सका। मुझे एक और समाधान मिला

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="@android:color/transparent"/>
    </shape>
</item>

<item android:drawable="@drawable/white_box" android:gravity="bottom"     android:height="2dp"/>
</layer-list>

(जैसा कि आप यहां देख सकते हैं मुख्य बटन रंग पारदर्शी है और white_box सफेद सॉलिड के साथ एक साधारण आयताकार है)


पारदर्शी पृष्ठभूमि के साथ यह पूरी तरह से पारदर्शी Edittext है।

<item>
    <shape android:shape="rectangle" >
        <solid android:color="@color/transparent" />
    </shape>
</item>

<item android:top="-3dp" android:right="-3dp" android:left="-3dp">
    <shape>
        <solid android:color="@android:color/transparent" />
        <stroke

            android:width="2dp"
            android:color="@color/bottomline" />
    </shape>
</item>


मुझे लगता है कि अगर आपको समझ में आया तो आपको आकार का उपयोग करने की आवश्यकता नहीं है।

यदि आप निम्न छवि में दिखाए गए दिख रहे हैं तो निम्न लेआउट का उपयोग करें।

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="#1bd4f6"
    android:paddingBottom="4dp" >

    <TextView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:background="#ababb2"
        android:padding="5dp"
        android:text="Hello Android" />
 </RelativeLayout>

 </RelativeLayout>

संपादित करें

इन गुणों के साथ खेलें आप परिणाम प्राप्त करेंगे

    android:top="dimension"
    android:right="dimension"
    android:bottom="dimension"
    android:left="dimension"

इस तरह की कोशिश करो

<?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="#1bd4f6" />
    </shape>
</item>

<item android:top="20px"
    android:left="0px">
    <shape android:shape="line"  >
        <padding android:bottom="1dp" />

        <stroke
            android:dashGap="10px"
            android:dashWidth="10px"
            android:width="1dp"
            android:color="#ababb2" />
    </shape>
</item>

</layer-list>

यह एक हैक की तरह है, लेकिन मुझे लगता है कि यह शायद यह करने का सबसे अच्छा तरीका है। ऊंचाई के बावजूद धराशायी रेखा हमेशा नीचे होगी।

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#1bd4f6" />
        </shape>
    </item>

    <item android:top="-2dp" android:right="-2dp" android:left="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:dashGap="10px"
                android:dashWidth="10px"
                android:width="1dp"
                android:color="#ababb2" />
        </shape>
    </item>

</layer-list>

स्पष्टीकरण:

दूसरा आकार एक धराशायी रूपरेखा के साथ पारदर्शी आयताकार है। सीमा बनाने में कुंजी केवल नीचे दिखाई देती है नकारात्मक मार्जिन में दूसरी तरफ सेट होती है। ये नकारात्मक मार्जिन उन तरफ खींचे गए क्षेत्र के बाहर धराशायी रेखा को "धक्का" देते हैं, केवल नीचे की रेखा को छोड़कर। एक संभावित दुष्प्रभाव (जिसे मैंने नहीं देखा है) यह है कि, जो विचारों के लिए अपनी सीमाओं से बाहर आते हैं, नकारात्मक-मार्जिन सीमाएं दिखाई दे सकती हैं।


यह चाल है ...

<item >
    <shape android:shape="rectangle">
        <solid android:color="#YOUR_BOTTOM_LINE_COLOR"/>
    </shape>
</item>

<item android:bottom="1.5dp">
    <shape android:shape="rectangle">
        <solid android:color="#YOUR_BG_COLOR"/>
    </shape>
</item>

यह उत्तर उन Google खोजकर्ताओं के लिए है जो यहां EditText की बिंदीदार सीमा को दिखाना चाहते हैं

dotted.xml फ़ोल्डर के अंदर dotted.xml बनाएँ और इन पेस्ट करें

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="1dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape android:shape="rectangle">
            <stroke
                android:width="0.5dp"
                android:color="@android:color/black" />    
            <solid android:color="#ffffff" />
            <stroke
                android:width="1dp"
                android:color="#030310"
                android:dashGap="5dp"
                android:dashWidth="5dp" />
            <padding
                android:bottom="5dp"
                android:left="5dp"
                android:right="5dp"
                android:top="5dp" />
        </shape>
    </item>
</layer-list>

फिर बस android:background सेट करें android:background dotted.xml android:background विशेषता dotted.xml हमने अभी बनाया है। आपका EditText इस तरह दिखता है।

<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Some Text"
    android:background="@drawable/dotted" />

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="-6dp"
        android:left="-6dp"
        android:right="-6dp"
        android:bottom="0dp">

        <shape android:shape="rectangle">
            <solid android:color="#88FFFF00"/>
            <stroke
                android:width="5dp"
                android:color="#FF000000"/>
        </shape>
    </item>
</layer-list>




layer-list