অ্যান্ড্রয়েড ভিউ-ভিত্তিক অ্যাপের জন্য স্থানিক UI তৈরি করুন

প্রযোজ্য XR ডিভাইস
এই নির্দেশিকা আপনাকে এই ধরণের XR ডিভাইসের অভিজ্ঞতা তৈরি করতে সাহায্য করবে।
XR হেডসেট
তারযুক্ত XR চশমা

অ্যান্ড্রয়েড জেটপ্যাক কম্পোজ ফ্রেমওয়ার্ক ব্যবহার করা হল অ্যান্ড্রয়েড ইউআই ডেভেলপমেন্টের সর্বশেষ অগ্রগতির সুবিধা নেওয়ার এবং আপনার অ্যাপ্লিকেশনটি শিল্পের সেরা অনুশীলনের সাথে সামঞ্জস্যপূর্ণ কিনা তা যাচাই করার সর্বোত্তম উপায়।

তবে, যদি আপনি এখনও মাইগ্রেট না করে থাকেন এবং অ্যান্ড্রয়েড ভিউ ভিত্তিক অ্যাপটিকে স্থানিকীকরণের জন্য কাজ করছেন, তাহলে আপনি কয়েকটি পদ্ধতি অবলম্বন করতে পারেন।

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) }
    }
}

অ্যান্ড্রয়েড ভিউ এবং কম্পোজ ইন্টারঅপারেবিলিটি API ব্যবহার করুন

Views এবং Compose এর মধ্যে আন্তঃকার্যক্ষমতা সম্পর্কে নির্দেশিকা দেখুন। এই ডকুমেন্টেশনে এই ফ্রেমওয়ার্কগুলিকে একসাথে ব্যবহার করা কভার করা হয়েছে এবং আপনি যে কোড নমুনাগুলি ব্যবহার করতে পারেন তার লিঙ্ক রয়েছে।

একটি বিদ্যমান খণ্ডে স্থানিক প্যানেল এবং অরবিটার যোগ করতে একটি ComposeView ব্যবহার করুন

কম্পোজেবল যোগ করতে এবং নতুন XR কন্টেন্ট তৈরি করতে আপনার XML লেআউটে একটি ComposeView ব্যবহার করুন। onCreateView() ফাংশনে ComposeView খুঁজে পেতে View বাইন্ডিং অথবা 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
}

জেটপ্যাক সিনকোর লাইব্রেরির সাথে সরাসরি কাজ করুন

XR এর জন্য কম্পোজ জেটপ্যাক সিনকোরের উপরে তৈরি। আপনি যদি ভিউ ভিত্তিক অ্যাপটিকে স্থানিকীকরণ করেন, তাহলে আপনি Compose for XR এর মধ্যে আপনার বিদ্যমান UI কোড ব্যবহার চালিয়ে যেতে পারেন অথবা 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"
)