Android Views पर आधारित मौजूदा ऐप्लिकेशन के लिए स्पेशियल यूज़र इंटरफ़ेस (यूआई) बनाना

इस्तेमाल किए जा सकने वाले XR डिवाइस
इन दिशा-निर्देशों से आपको इस तरह के एक्सआर डिवाइसों के लिए अनुभव तैयार करने में मदद मिलती है.
एक्सआर हेडसेट
वायर वाले एक्सआर स्मार्ट ग्लास

Android यूज़र इंटरफ़ेस (यूआई) डेवलपमेंट में हुई नई प्रोग्रेस का फ़ायदा लेने के लिए, Android Jetpack Compose फ़्रेमवर्क का इस्तेमाल करना सबसे सही तरीका है. इससे यह भी पुष्टि की जा सकती है कि आपका ऐप्लिकेशन, इंडस्ट्री के सबसे सही तरीकों के मुताबिक अप-टू-डेट है.

हालांकि, अगर आपने माइग्रेट नहीं किया है और Android व्यू पर आधारित किसी ऐप्लिकेशन को स्पेशलाइज़ करने की कोशिश की जा रही है, तो इसके लिए कुछ तरीके अपनाए जा सकते हैं.

SpatialPanels में अपने मौजूदा व्यू फिर से इस्तेमाल करना

SpatialPanel, Jetpack Compose for XR लाइब्रेरी का हिस्सा है. हालांकि, इसमें व्यू भी इस्तेमाल किए जा सकते हैं. अपनी MainActivity में Subspace का इस्तेमाल करते समय, किसी मौजूदा व्यू को SpatialPanel में डालें, जैसा कि इस उदाहरण में दिखाया गया है.

setContent {
    Subspace {
        SpatialPanel(
            modifier = SubspaceModifier.height(500.dp).width(500.dp).depth(25.dp)
        ) { MyCustomView(this@ActivityWithSubspaceContent) }
    }
}

Android व्यू और Compose इंटरऑपरेबिलिटी एपीआई का इस्तेमाल करना

व्यू और Compose के बीच इंटरऑपरेबिलिटी के बारे में दिशा-निर्देश देखें. इस दस्तावेज़ में, इन फ़्रेमवर्क को एक साथ इस्तेमाल करने के बारे में बताया गया है. साथ ही, इसमें कोड सैंपल के लिंक भी दिए गए हैं. इनका इस्तेमाल किया जा सकता है.

किसी मौजूदा फ़्रैगमेंट में स्पेशल पैनल और ऑर्बिटर जोड़ने के लिए, ComposeView का इस्तेमाल करना

अपने एक्सएमएल लेआउट में ComposeView का इस्तेमाल करके, कंपोज़ेबल जोड़ें और नया एक्सआर कॉन्टेंट बनाएं. onCreateView() फ़ंक्शन में ComposeView को ढूंढने के लिए, व्यू बाइंडिंग या findViewById का इस्तेमाल करें.

ComposeView के दिशा-निर्देशों के बारे में ज़्यादा जानें.

override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View {
    val view = inflater.inflate(R.layout.example_fragment, container, false)
    view.findViewById<ComposeView>(R.id.compose_view).apply {
        // Dispose of the Composition when the view's LifecycleOwner
        // is destroyed
        setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
        setContent {
            // In Compose world
            SpatialPanel(SubspaceModifier.height(500.dp).width(500.dp)) {
                Text("Spatial Panel with Orbiter")
            }
        }
    }
    return view
}

Jetpack SceneCore लाइब्रेरी के साथ सीधे तौर पर काम करना

Compose for XR को Jetpack SceneCore पर बनाया गया है. अगर आपको व्यू पर आधारित किसी ऐप्लिकेशन को स्पेशलाइज़ करना है, तो Compose for XR में अपने मौजूदा यूज़र इंटरफ़ेस (यूआई) कोड का इस्तेमाल जारी रखा जा सकता है. इसके अलावा, Jetpack SceneCore के Session के साथ सीधे तौर पर काम किया जा सकता है.

PanelEntity का इस्तेमाल करके, सीधे SceneCore से पैनल बनाए जा सकते हैं. dimensions का इस्तेमाल करके, पैनल का साइज़ मीटर में सेट करें या pixelDimensions का इस्तेमाल करके, पिक्सल में सेट करें. संबंधित कॉम्पोनेंट का इस्तेमाल करके, पैनल को मूव करने या उनका साइज़ बदलने का विकल्प चुना जा सकता है. ज़्यादा जानकारी के लिए, इकाइयों में सामान्य व्यवहार जोड़ना लेख पढ़ें.

val panelContent = MyCustomView(this)
val panelEntity = PanelEntity.create(
    session = xrSession,
    view = panelContent,
    pixelDimensions = IntSize2d(500, 500),
    name = "panel entity"
)