पर .png फ़ाइल से कस्टम व्यू की पृष्ठभूमि बनाएं I View से विस्तार करके एक कस्टम व्यू बनाया है। ऑन ड्रा() में मैंने कुछ मंडलियां और अन्य सामान खींचा। लेकिन अब मैं एक संसाधन (एसडी कार्ड या एक स्ट्रीम) से एक पृष्ठभूमि जोड़ना चाहता हूं जो वास्तव में एक मानचित्र है जिसे मैं अपने सर्वर से डाउनलोड करता हूं और उस पर आकर्षित करता हूं। यह Android 8+Android
@Override
protected void onDraw(Canvas canvas) {
Canvas g = canvas;
String file = "/mnt/sdcard/download/tux.png";
Bitmap bg = null;
try {
bg = BitmapFactory.decodeFile(file);
g.setBitmap(bg);
} catch (Exception e) {
Log.d("MyGraphics", "setBitmap() failed according to debug");
}
}
किसी तरह g.setBitmap (bg) के लिए के बिगड़ते, मैं छवि चश्मा को देखा नहीं रखता है, लेकिन वास्तव में यह PNG प्रारूप का सिर्फ एक टक्स छवि (कोई 24 बिट रंग) है। क्या कोई मुझे कुछ सुझाव दे सकता है कि पृष्ठभूमि छवि कैसे जोड़ूं ताकि मैं इसे आकर्षित कर सकूं? धन्यवाद।
मार्टिन, इस स्पष्ट उदाहरण के लिए आपका बहुत बहुत धन्यवाद। काफी अजीब है कि मैंने पहले ही आपका पहला उदाहरण किया है और किसी भी तरह से यह काम नहीं करता है! यही वह जगह है जहां मैं खोना शुरू कर दिया। दूसरा एक दृश्य की अचल संपत्ति में फिट होने के लिए खींच रहा है, यह आखिर में क्या था। लेकिन आपका पहला मैं इसे बहुत बेहतर पसंद करता हूं, इस तरह मैं तस्वीर को अपने आकार को संशोधित किए बिना स्थिति में रख सकता हूं। – AndaluZ
जब आप मेरा पहला उदाहरण आज़माते हैं, तो वास्तव में क्या काम नहीं करता है? एक अपवाद (यदि हां, तो क्या अपवाद)? स्क्रीन पर कुछ भी नहीं खींचा जाता है? आप किस एंड्रॉइड संस्करण पर चल रहे हैं? क्या आप उस सटीक कोड को प्रदान कर सकते हैं जिसका आप उपयोग करते हैं, लेकिन आप ऐसा नहीं करते हैं? –
यह मेरे दोस्त, .png के साथ-साथ .jpg के साथ काम करता है। आपकी पोस्ट के बाद भी मैं खेल रहा था और कुछ चित्रों को आजमा रहा था और पाया कि सभी .jpeg फ़ाइलें काम नहीं करती हैं। जब मैं छोटे जेपीजी चित्रों का उपयोग करता हूं जैसे कि 50 केबी यह काम करता है, लेकिन जब 600 केबी की तरह बड़ी जेपीजी चित्रों का उपयोग करते हैं तो पृष्ठभूमि पूरी तरह से सफेद हो जाती है। मुझे नहीं पता कि इसे छवि आकार के साथ क्या करना है, क्योंकि जो लोग काम नहीं करते हैं, उनके दृश्य की अचल संपत्ति की तुलना में बहुत बड़ा आकार है। SetBackgroundDrawable() का उपयोग करना काम करता है, लेकिन यह दृश्य के रीयल एस्टेट आकार में भी कम हो जाता है। – AndaluZ