से बिटमैप मेरे पास कुछ एनडीके आधारित सी ++ कोड है जिसे एंड्रॉइड बिटमैप ऑब्जेक्ट बनाने की आवश्यकता है।)एक एंड्रॉइड.graphics बनाना। C++
तो विधि मैं कॉल करना चाहते हैं
Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
तो यह करने के लिए है, मुझे यकीन है कि वहाँ सी ++ कोड से सीधे यह करने के लिए एक रास्ता है, लेकिन इसके नहीं करने के लिए चीजों की सबसे आसान कर रहा हूँ देशी कोड से मुझे निम्नलिखित चरणों को करने की आवश्यकता है।
- कक्षा (android.graphics.Bitmap) खोजें।
- "createBitmap" की स्थिर विधि आईडी प्राप्त करें।
- enum बनाएँ।
- स्थिर विधि को कॉल करें।
(आखिरकार मुझे एक जिन्टअरे बनाने और डेटा को पास करने की आवश्यकता होगी लेकिन मैं इसके बारे में बाद में चिंता करूंगा)।
हालांकि मैं चरण 2 और 3 पर बहुत खो गया हूं। मेरा कोड इस समय इस तरह दिखता है:
jclass jBitmapClass = gpEnv->FindClass("android.graphics.Bitmap");
jmethodID jBitmapCreater = gpEnv->GetStaticMethodID(jBitmapClass, "createBitmap", "(IILandroid/graphics/Bitmap/Config;)Landroid/graphics/Bitmap;");
लेकिन फिर मैं अटक गया हूं। मैं देशी सी/सी ++ कोड से एनम कैसे बना सकता हूं?
इसके अलावा GetStaticMethodID में मेरा अंतिम पैरामीटर सही है? मुझे यकीन नहीं था कि विशिष्ट वस्तुओं को कैसे निर्दिष्ट किया जाए लेकिन मुझे लगता है कि उपर्युक्त काम करता है। हालांकि, enum पर गलत हो सकता है!
अग्रिम धन्यवाद।
अहह शानदार मेरे खोज क्लास में "।" एस के बजाए स्लैश का उपयोग करना एक जीवन बचतकर्ता है !! :) – Goz
आपका कोड क्रैश का कारण बनता है, लेकिन जब मैंने कॉन्फ़िगर स्ट्रिंग को इस पर बदल दिया, तो यह काम किया: जॉबजेक्ट java_bitmap_config = env-> CallStaticObjectMethod (bcfg_class, midValueOf, env-> न्यूस्ट्रिंगटएफ ("ARGB_8888")); –
env के रूप में एक सूचक है जिसे आपको "env" को बदलने की भी आवश्यकता है।"से" env-> " – Tertium