2013-01-31 26 views
7

कारणबनाना और उपयोगकर्ता

मैं ऐसा करने की जरूरत है क्योंकि मैं टुकड़ा के दृश्य से drawable कैश पाने के लिए और फिर उस दृश्य से किसी बिटमैप बनाने चाहते करने के लिए जबकि दिखाई नहीं एक टुकड़ा के दृश्य का उपयोग करना। इस बिटमैप का उपयोग फेसबुक पर प्रकाशित करने के लिए किया जाएगा।

समस्या

जब मैं बनाने क्योंकि वे एक टुकड़ा लेन-देन के माध्यम से और क्योंकि दृश्य के उनमें शामिल उपयोगकर्ता को दिखाई नहीं देते नहीं जोड़ा गया मेरी टुकड़ा के विचारों का निर्माण नहीं किया जा रहा है।

मैं इन विचारों को मैन्युअल रूप से आकर्षित नहीं करना चाहता क्योंकि मुझे स्क्रीन की सटीक प्रतिकृति नहीं मिल जाएगी।

मेरे प्रश्न

वहाँ टुकड़ा बिना टुकड़ा की वास्तव में दिखाया जा रहा है (के रूप में यदि आप एक FragmentTransaction के माध्यम से इसे जोड़ने के लिए थे ही कार्यक्षमता) पूर्ण कार्यक्षमता के लिए एक तरीका है?

मुझे दिखाई देने पर खंड के दृश्य तक पहुंचने में सक्षम होना चाहिए।

अग्रिम

+0

वास्तव में दृश्यमान स्क्रीन पर जोड़ने से पहले आप खंड के दृश्य का बिटमैप क्यों प्राप्त करना चाहते हैं? – Luksprog

+0

मुझे दृश्य चाहिए क्योंकि मैं चाहता हूं कि इसे एक बिटमैप में परिवर्तित करने के लिए क्या प्रदर्शित किया जाए, जिसे मैं फेसबुक – StuStirling

+0

पर अपलोड कर सकता हूं, मुझे समझ में आया कि प्रश्न ** ** ** ** ** ** ** ** उपयोगकर्ता से पहले उस बिटमैप को बनाने की आवश्यकता क्यों है इसे देखेगा (जो मुझे लगता है कि बाद में ऐसा होगा जब आप लेआउट में टुकड़ा जोड़ते हैं)? – Luksprog

उत्तर

1

में धन्यवाद जवाब मैं here दिया भी अपनी स्थिति के लिए लागू होता है? असल में यह FragmentTransaction के विभिन्न तरीकों का उपयोग करता है।

+0

नहीं। हालांकि धन्यवाद! – StuStirling

+0

मेरा उत्तर संकेत कोड में फ्रैगमेंट को तुरंत चालू कर रहा है और फिर शो() या छुपाएं() के साथ इसकी दृश्यता सेट कर रहा है। इस तरह आपके पास Frgament आपके लिए उपलब्ध है लेकिन उपयोगकर्ता को दिखाई नहीं दे रहा है। – Kerry

1

क्या कोई तरीका है कि आप अपने टुकड़े छुपा लेआउट में जोड़ सकते हैं? उदाहरण एक्सएमएल:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/GoneFragmentContainer" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:visibility="gone" /> 
फिर अपने कोड में

:

MyFragment myFragment = new MyFragment(); 
getSupportFragmentManager().beginTransaction() 
    .add(R.id.GoneFragmentContainer, myFragment) 
    .commit(); 
myFragment.getView().callMethodsOnMyNonVisibleFragment(); 
+0

मुझे लगता है कि यदि मूल दृश्य समूह की दृश्यता = चली गई है, तो टुकड़े की क्रिएटिव पर कभी भी कॉल नहीं किया जाएगा। – Tapemaster

3

एक और सवाल के पते कैसे render activities into offscreen buffers करने के लिए। आप इस तकनीक का उपयोग एक ऑफस्क्रीन बफर में एक टुकड़ा प्रस्तुत करने के लिए कर सकते हैं।

तकनीक शामिल है:

  • startActivityForResult (साथ नई गतिविधि शुरू करने) के बजाय startActivity()
  • सेटअप एक ड्राइंग कैश
  • उपयोग getDrawingBitmap() एक बार लेआउट
1
समाप्त हो गया है की

मैं View से Bitmap को पकड़ने से बचने की कोशिश करता हूं और इसके बजाय इसे किसी अन्य तरीके से प्राप्त करता हूं। फिर आप onAttach() टुकड़े की विधि में जो कुछ भी प्रोसेसिंग कर सकते हैं, उसे तब कर सकते हैं, जब आप अपनी मूल गतिविधि में टुकड़े को तुरंत चालू करते हैं और यह इससे पहले कि यह दिखाई देता है।

+0

तो मुझे इसे खुद आकर्षित करना होगा? – StuStirling

+0

खंड का दृश्य ऑनक्रेट व्यू() विधि तक नहीं बनाया गया है। इसलिए यदि आप एक टुकड़े के दृश्य से बिटमैप प्राप्त करना चाहते हैं, तो उस बिटमैप को छविव्यू में डालने से पहले कहीं से आना होगा। मैं कह रहा हूं, "एटैच() विधि में" कहीं से बिटमैप को प्राप्त/संसाधित करना "ताकि आप टुकड़े के दृश्य को फुलाए जाने से पहले इसे प्राप्त कर सकें। – Wenger