XML Android में आकृति के लिए एक पृष्ठभूमि छवि जोड़ें


148

आप एक आकृति में एक पृष्ठभूमि छवि कैसे जोड़ते हैं? कोड मैंने नीचे आज़माया लेकिन कोई सफलता नहीं:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
//here is where i need to set the image
<solid android:color="@drawable/button_image"/>
    <corners
     android:bottomRightRadius="5dp"
     android:bottomLeftRadius="5dp"
     android:topLeftRadius="5dp"
     android:topRightRadius="5dp"/>
 </shape>

आपको कस्टम आकार के वर्ग का विस्तार करने और बनाने की आवश्यकता है। उदाहरण के लिए RoundedImageView देखें। यह एक राउंड इमेजव बनाता है, इसलिए जो भी iamge आप इसे बैकग्राउंड के रूप में सेट करते हैं, वह राउंडेड दिखाई देगा
राहुल गुप्ता

जवाबों:


221

निम्नलिखित का उपयोग करें layerlist:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" android:padding="10dp">
            <corners
                 android:bottomRightRadius="5dp"
                 android:bottomLeftRadius="5dp"
                 android:topLeftRadius="5dp"
                 android:topRightRadius="5dp"/>
         </shape>
   </item>
   <item android:drawable="@drawable/image_name_here" />
</layer-list>

4
धन्यवाद, यह काम किया लेकिन किनारों को गोल नहीं किया गया है?
DevC

क्या आप गोल किनारों के साथ छवि चाहते हैं ?? क्योंकि ऐसा लगता है कि आपके आकार का कोई रंग नहीं है
विपुल मित्तल

1
मेरे आकार में एक सफेद रंग और गोल किनारे थे। मैंने सोचा कि यदि मैं रंग हटाता हूं और इसके बजाय एक छवि का उपयोग करता हूं तो गोल किनारे बने रहेंगे। यदि यह संभव नहीं है तो ठीक है
DevC

गोल कोनों के साथ इतनी छवि, संभव नहीं है?
bvsss 8

यह संभव है लेकिन आपको प्रोग्राम को छवि के कोनों को गोल करने की आवश्यकता है। इसे देखें stackoverflow.com/questions/2459916/…
विपुल मित्तल

199

मैंने एक गोलाकार पृष्ठभूमि के साथ एक खींचने योग्य छवि के लिए निम्नलिखित का उपयोग किया।

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/colorAccent"/>
        </shape>
    </item>
    <item
        android:drawable="@drawable/ic_select"
        android:bottom="20dp"
        android:left="20dp"
        android:right="20dp"
        android:top="20dp"/>
</layer-list>

यहां है कि यह कैसा लग रहा है

यहाँ छवि विवरण दर्ज करें

आशा है कि किसी की मदद करता है।


क्या छवि का गुरुत्वाकर्षण सेट करने के लिए कुछ है।
सागर देवांगना

ऊपर दिए गए कोड में या जब आप अपने लेआउट में छवि को शामिल करते हैं, तो @SagarDevanga?
रे हंटर

सबसे पहले, मैंने आंतरिक आइकन को 24dp (इसका वास्तविक आकार) सेट करने के लिए ऊंचाई और चौड़ाई का उपयोग करने का प्रयास किया। यह एएस में पूर्वावलोकन पर पूरी तरह से आकार बदलता है लेकिन टैबलेट पर इसका कोई प्रभाव नहीं पड़ा है। इसलिए मैंने आपकी विधि का उपयोग किया। मैंने आकार की ऊँचाई और चौड़ाई 40dp और फिर ऊपर, नीचे, बाएँ और दाएँ आइकन के आइटम को 8dp पर सेट किया। (40-24) / 2 = 8। हालाँकि, परिणामी छवि सही आकार की दिखती है, लेकिन धुंधली है, जिस पर मुझे संदेह है कि यह पीएनजी के कुछ प्रकार के पुन: आकार के कारण है। कोई सुझाव?
ल्यूक एलीसन

TLDR; आप छवि गुणवत्ता को खोए बिना 40dp व्यास वाले चक्र और 24dp आइकन के साथ अपनी छवि कैसे बनाएंगे?
ल्यूक एलीसन

@LukeAllison आप यूआई में आइकन को कैसे जोड़ रहे हैं और यह छवि कितनी बड़ी है जिसे आप अंडाकार में रख रहे हैं?
रे हंटर

21

यह एक गोल आकार है, जिसमें आइकन है:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ok_icon"/>
    <item>
        <shape
                android:shape="oval">
            <solid android:color="@color/transparent"/>
            <stroke android:width="2dp" android:color="@color/button_grey"/>
        </shape>
    </item>
</layer-list>

कैरेट छवि और सीमा दिखाने के लिए कौन अधिक उपयुक्त है
मासूम

7

यह एक कोने की छवि है

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:drawable="@drawable/img_main_blue"
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />

    <item>
        <shape
            android:padding="10dp"
            android:shape="rectangle">
            <corners android:radius="10dp" />
            <stroke
                android:width="5dp"
                android:color="@color/white" />
        </shape>

    </item>
</layer-list>

4

मैंने एक सीमा के साथ एक आकर्षक छवि के लिए निम्नलिखित का उपयोग किया।

सबसे पहले ड्रॉबल फोल्डर में इस कोड के साथ एक .xml फाइल बनाएं:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <solid android:color="@color/orange"/>
    </shape>
</item>
<item
    android:top="2dp"
    android:bottom="2dp"
    android:left="2dp"
    android:right="2dp">
    <shape android:shape="oval">
        <solid android:color="@color/white"/>
    </shape>
</item>
<item
    android:drawable="@drawable/messages" //here messages is my image name, please give here your image name.
    android:bottom="15dp"
    android:left="15dp"
    android:right="15dp"
    android:top="15dp"/>

दूसरा लेआउट फ़ोल्डर में एक .xml फ़ाइल देखें और इस तरह से उपरोक्त .xml फ़ाइल को कॉल करें

<ImageView
   android:id="@+id/imageView2"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/merchant_circle" />  // here merchant_circle will be your first .xml file name

1

यहां आपकी छवि (छवि दृश्य) के लिए एक कस्टम आकार प्राप्त करने का एक और सबसे आसान तरीका है। यह किसी के लिए मददगार हो सकता है। यह सिर्फ एक ही लाइन कोड है।

सबसे पहले आपको एक निर्भरता जोड़ने की आवश्यकता है:

dependencies {
    compile 'com.mafstech.libs:mafs-image-shape:1.0.4'   
}

और फिर बस इस तरह कोड की एक पंक्ति लिखें:

Shaper.shape(context, 
       R.drawable.your_original_image_which_will_be_displayed, 
       R.drawable.shaped_image_your_original_image_will_get_this_images_shape,
       imageView,
       height, 
       weight);   
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.