2016-03-02 8 views
11

नहीं दिखा रहा है मेरे पास एक एक्समरिन फॉर्म (2.0) एंड्रॉइड ऐप है जहां मैं एक छवि दिखाने की कोशिश कर रहा हूं।Xamarin फॉर्म छवि

<Image Source="icon-pages-r1.png" /> 

छवि हालांकि नहीं दिखा रहा है: मैं जो मैं निम्नलिखित कोड का उपयोग कर दिखाने के लिए कोशिश कर रहा हूँ icon-pages-r1.png कहा जाता है एक आइकन मिल गया है। जब मैं स्रोत को Icon.png (डिफ़ॉल्ट Xamarin आइकन) में बदलता हूं तो यह काम करता है।

छवि अर्ध-पारदर्शी पीएनजी है (इस प्रकार मध्य में एक रंगीन आइकन और इसके चारों ओर पारदर्शी), यह 46x46 है और विंडोज़ में यह आइटम प्रकार पीएनजी फ़ाइल के रूप में ठीक दिखाता है। मैंने पेंट में छवि खोलने और इसे फिर से सहेजने की कोशिश की (जो पारदर्शिता को मारता है) लेकिन यह या तो काम नहीं करता है। छवियों के लिए AndroidResourceCopy to Output DirectoryDo not copy पर सेट हैं।

क्या कोई जानता है कि मुझे यह ऐप मेरे ऐप में दिखाने के लिए क्यों नहीं मिल रहा है?

+1

क्या यह संसाधन/आकर्षित करने योग्य है? आप अपने समाधान की सफाई करने और बिन और ओबीजे फ़ोल्डरों को मैन्युअल रूप से निचोड़ने का प्रयास भी कर सकते हैं। कभी-कभी मदद करता है। – Jason

+0

बिल्ड एक्शन कहां परिभाषित किया गया है? – nishantvodoo

+0

@ keanu101 आप ऑब्जेक्ट के लिए गुणों पर जाकर इसे सेट कर सकते हैं (समाधान एक्सप्लोरर -> गुणों में दाएं क्लिक करें)। –

उत्तर

18

आप ज़ैमरिन एंड्रॉइड के लिए छवि नामों में हाइफ़न का उपयोग नहीं कर सकते हैं। हाइफ़न से छुटकारा पाएं (फ़ाइल नाम और छवि संदर्भ दोनों में) और आप सेट हो जाएंगे।

+3

उह, यह मुद्दा था। अरे, मैंने इस बेवकूफ अनियंत्रित नियम को जानने के लिए HOURS बर्बाद कर दिया। दूसरों के लिए युक्ति: टूल्स -> विकल्प -> प्रोजेक्ट्स और सॉल्यूशंस -> बिल्ड और रन -> एमएसबिल्ड प्रोजेक्ट बिल्ड आउटपुट वर्बोजिटी -> इसे 'न्यूनतम' के बजाय 'सामान्य' पर सेट करें। यह वास्तव में आउटपुट में एक त्रुटि के रूप में दिखाएगा। –

+1

"सामान्य" ने मेरे लिए इसे काट नहीं दिया। मुझे इसे "डायग्नोस्टिक" पर सेट करना पड़ा जब तक कि मैं वास्तव में पीएनजी से संबंधित त्रुटियों को देखने में कामयाब रहा। –

8
जो दूसरों यहाँ खत्म हो सकता है के लिए

...

यकीन है कि छवि फ़ाइल वास्तव में परियोजना (संसाधन \ drawable) और कहा कि निर्माण कार्रवाई AndroidResource है का एक हिस्सा है बनाओ।

4

जब एंड्रॉयड में एक छवि संसाधन के नाम के लिए बाध्य मैंने पाया यह होना चाहिए:

    संसाधन में
  • /Drawable फ़ोल्डर
  • सेट बिल्ड कार्रवाई: AndroidResource
  • आउटपुट को
  • सेट कॉपी: नहीं कॉपी
  • नाम पर हाइफ़न की अनुमति नहीं है
  • नाम केस संवेदनशील है
0

मुझे यह समस्या थी। मैंने MSBuild project build output verbosity को Diagnostic के रूप में सेट किया है। अब मैंने अपनी आउटपुट विंडो में निम्नलिखित पाया जब मैंने ओओएम की खोज की।

ImageRenderer: Error loading image: Java.Lang.OutOfMemoryError: Failed to allocate a 571513228 byte allocation with 2140744 free bytes and 92MB until OOM

अब कोशिश की

  • एक png छवि है जो कम से कम 200KB आकार और कम से कम 1400 x 1050 आकार (परीक्षण के लिए) है बनाएँ।

यह ठीक काम किया।

नोट: "MSBuild परियोजना का निर्माण उत्पादन शब्दाडंबर" उपकरण के नीचे पाया जा सकता है -> विकल्प -> परियोजनाओं और समाधान -> निर्माण और चलाने

जनरल चौकियों

  • पढ़ें Local Images
  • सुनिश्चित करें कि फ़ाइल नाम में केवल लोअरकेस अक्षर हैं।
  • उस पीएनजी फ़ाइल को संसाधन/ड्रायबल फ़ोल्डर में जोड़ें। के रूप में

    <StackLayout VerticalOptions="Center" HorizontalOptions="Center"> 
        <Label Text="Pre" /> 
        <Image Source="abstracttriangleg.png" 
          Aspect="AspectFill" VerticalOptions="End" HorizontalOptions="CenterAndExpand"/> 
        <Label Text="Post" /> 
    </StackLayout> 
    
    • स्वच्छ समाधान इस प्रकार

    सामग्री पृष्ठ बनाएँ।

  • स्वच्छ bin और Obj फ़ाइलें।

Resources का कहना है:

Android supports bitmap files in three formats: .png (preferred), .jpg (acceptable), .gif (discouraged).

Compress PNG and JPEG files का कहना है:

You can reduce PNG file sizes without losing image quality using tools like pngcrush, pngquant, or zopflipng. All of these tools can reduce PNG file size while preserving the perceptive image quality.

The pngcrush tool is particularly effective.

To compress JPEG files, you can use tools like packJPG and guetzli.

संदर्भ:

  1. Android : Maximum allowed width & height of bitmap

  2. Android:java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM

  3. Handling Bitmaps

+0

अधिक संदर्भ: [बड़ी बिटमैप्स को कुशलता से लोड करना] (https://developer.android.com/topic/performance/graphics/load-bitmap.html) और [लोड बड़े बिटमैप्स कुशलता से लोड करें] (https://developer.xamarin.com/व्यंजनों/एंड्रॉयड/संसाधन/सामान्य/load_large_bitmaps_efficiently /) – Lijo

0

आईओएस

लिए

चरण 1: ios में अपनी छवि को जोड़ें -> संसाधन फ़ोल्डर (यह नहीं बनाते हैं)

चरण 2; राइट क्लिक छवि -> गुण -> क्रिया बनाएं -> "सामग्री" के रूप में सेट करें