ডেস্কটপ উইন্ডোিং সমর্থন করে, ডেস্কটপ উইন্ডোিং সমর্থন করে

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

চিত্র 1-এ, আপনি ডেস্কটপ উইন্ডো সক্ষম সহ পর্দার সংগঠন দেখতে পারেন। উল্লেখ্য বিষয়:

  • ব্যবহারকারীরা একসাথে একাধিক অ্যাপ পাশাপাশি চালাতে পারেন।
  • টাস্কবার ডিসপ্লের নীচে একটি নির্দিষ্ট অবস্থানে রয়েছে যা চলমান অ্যাপগুলিকে দেখায়। ব্যবহারকারীরা দ্রুত অ্যাক্সেসের জন্য অ্যাপগুলি পিন করতে পারেন।
  • নতুন কাস্টমাইজযোগ্য শিরোনাম বার প্রতিটি উইন্ডোর শীর্ষকে ছোট করা এবং সর্বাধিক করার মতো নিয়ন্ত্রণগুলির সাথে সজ্জিত করে৷
চিত্র 1. একটি ট্যাবলেটে ডেস্কটপ উইন্ডো করা।

ডিফল্টরূপে, অ্যাপ্লিকেশানগুলি অ্যান্ড্রয়েড ট্যাবলেটগুলিতে পূর্ণ স্ক্রীন খোলে৷ ডেস্কটপ উইন্ডোতে একটি অ্যাপ চালু করতে, স্ক্রিনের শীর্ষে উইন্ডো হ্যান্ডেল টিপুন এবং ধরে রাখুন এবং চিত্র 2-এ দেখানো হিসাবে UI-এর মধ্যে হ্যান্ডেলটি টেনে আনুন।

যখন একটি অ্যাপ ডেস্কটপ উইন্ডোতে খোলা থাকে, অন্যান্য অ্যাপগুলিও ডেস্কটপ উইন্ডোতে খোলে।

চিত্র 2. ডেস্কটপ উইন্ডোতে প্রবেশ করতে অ্যাপ উইন্ডো হ্যান্ডেল টিপুন, ধরে রাখুন এবং টেনে আনুন।

ব্যবহারকারীরা মেনু থেকে ডেস্কটপ উইন্ডোিং চালু করতে পারেন যা আপনি যখন হ্যান্ডেলটিতে ট্যাপ বা ক্লিক করেন বা কীবোর্ড শর্টকাট মেটা কী (উইন্ডোজ, কমান্ড, বা অনুসন্ধান) + Ctrl + ডাউন ব্যবহার করেন তখন উইন্ডো হ্যান্ডেলের নীচে প্রদর্শিত হয়।

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

ডেস্কটপ উইন্ডোতে ফিরে যেতে, সাম্প্রতিক স্ক্রিনে ডেস্কটপ স্পেস টাইলটিতে আলতো চাপুন বা ক্লিক করুন।

resizability এবং সামঞ্জস্য মোড

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

চিত্র 3. ল্যান্ডস্কেপে একটি প্রতিকৃতি-সীমাবদ্ধ অ্যাপের উইন্ডোর আকার পরিবর্তন করা।

অ-আবর্তনযোগ্য হিসাবে ঘোষণা করা অ্যাপগুলি (অর্থাৎ, resizeableActivity = false ) একই আকৃতির অনুপাত বজায় রেখে তাদের UI স্কেল করা হয়েছে।

চিত্র 4. উইন্ডোর আকার পরিবর্তন করার সাথে সাথে একটি অ-আবর্তনযোগ্য অ্যাপের UI স্কেল হয়।

যে ক্যামেরা অ্যাপগুলি অভিযোজন লক করে বা অ-আবর্তনযোগ্য হিসাবে ঘোষণা করা হয় সেগুলির ক্যামেরার ভিউফাইন্ডারগুলির জন্য একটি বিশেষ চিকিত্সা রয়েছে: উইন্ডোটি সম্পূর্ণরূপে আকার পরিবর্তনযোগ্য, তবে ভিউফাইন্ডার একই আকৃতির অনুপাত রাখে। অনুমান করে যে অ্যাপগুলি সর্বদা প্রতিকৃতি বা ল্যান্ডস্কেপে চলে, অ্যাপগুলি হার্ডকোড বা অন্যথায় অনুমান তৈরি করে যা প্রিভিউ বা ক্যাপচার করা চিত্রের অভিযোজন বা আকৃতির অনুপাতের ভুল গণনার দিকে নিয়ে যায় যার ফলে প্রসারিত, পাশের দিকে বা উল্টা-পাল্টা ছবি হয়।

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

ক্যামেরা অ্যাপ্লিকেশানগুলির জন্য সামঞ্জস্য মোড সম্পর্কে আরও জানতে, ডিভাইস সামঞ্জস্য মোড দেখুন৷

চিত্র 5. ক্যামেরা ভিউফাইন্ডার উইন্ডোটির আকার পরিবর্তন করার সাথে সাথে তার আকৃতির অনুপাত বজায় রাখে।

কাস্টমাইজযোগ্য হেডার ইনসেট

ডেস্কটপ উইন্ডোতে চলমান সমস্ত অ্যাপের একটি হেডার বার থাকে, এমনকি ইমারসিভ মোডেও
নিশ্চিত করুন যে আপনার অ্যাপের বিষয়বস্তু হেডার বার দ্বারা অস্পষ্ট নয়। হেডার বার হল একটি ক্যাপশন বার ইনসেট টাইপ: androidx.compose.foundation.layout.WindowInsets.Companion.captionBar() ; ভিউতে, WindowInsets.Type.captionBar() , যা সিস্টেম বারের অংশ।

আপনি আপনার অ্যাপে ডিসপ্লে কন্টেন্ট এজ-টু-এজে ইনসেট পরিচালনার বিষয়ে আরও শিখতে পারেন এবং কম্পোজ-এ উইন্ডো ইনসেট পরিচালনা করতে পারেন

হেডার বারটিও কাস্টমাইজযোগ্য। Android 15 অ্যাপসকে হেডার বারের ভিতরে কাস্টম বিষয়বস্তু আঁকার অনুমতি দেওয়ার জন্য হেডার বারকে স্বচ্ছ করতে APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND উপস্থিতির ধরন চালু করেছে।

অ্যাপগুলি তারপরে সিস্টেম ক্যাপশন উপাদানগুলি (ক্লোজ এবং ম্যাক্সিমাইজ বোতামগুলি) বাদ দিয়ে ক্যাপশন বারের মতো দেখতে তাদের বিষয়বস্তুর উপরের অংশটিকে স্টাইল করার জন্য দায়ী হয়ে যায় (ব্যাকগ্রাউন্ড, কাস্টম সামগ্রী ইত্যাদি) অ্যাপের উপরে স্বচ্ছ ক্যাপশন বার।

অ্যাপ্লিকেশানগুলি APPEARANCE_LIGHT_CAPTION_BARS ব্যবহার করে ক্যাপশনের ভিতরে সিস্টেম উপাদানগুলির উপস্থিতি টগল করতে পারে, যেমন স্ট্যাটাস বার এবং নেভিবার টগল করা হয়।

অ্যান্ড্রয়েড 15 এছাড়াও WindowInsets#getBoundingRects() পদ্ধতি চালু করেছে যা অ্যাপগুলিকে আরও বিস্তারিতভাবে ক্যাপশন বার ইনসেটগুলির অন্তর্নিহিত করতে সক্ষম করে। অ্যাপগুলি সেই অঞ্চলগুলির মধ্যে পার্থক্য করতে পারে যেখানে সিস্টেম সিস্টেম উপাদানগুলিকে আঁকে এবং অব্যবহৃত এলাকার মধ্যে যেখানে অ্যাপগুলি সিস্টেম উপাদানগুলিকে ওভারল্যাপ না করেই কাস্টম সামগ্রী রাখতে পারে৷

API দ্বারা প্রত্যাবর্তিত Rect অবজেক্টের তালিকা সিস্টেম অঞ্চলগুলিকে নির্দেশ করে যা এড়ানো উচিত। যেকোন অবশিষ্ট স্থান (ক্যাপশন বার ইনসেটগুলি থেকে আয়তক্ষেত্রগুলি বিয়োগ করে গণনা করা হয়) যেখানে অ্যাপটি সিস্টেম উপাদানগুলিকে ওভারল্যাপ না করে এবং ইনপুট গ্রহণ করার ক্ষমতা সহ আঁকতে পারে৷

কাস্টম হেডার প্রয়োগ করার আগে এবং পরে Chrome।
চিত্র 6. কাস্টম হেডার বাস্তবায়নের আগে এবং পরে Chrome।

মাল্টিটাস্কিং এবং মাল্টি-ইনস্ট্যান্স সমর্থন

ডেস্কটপ উইন্ডোিংয়ের মূলে মাল্টিটাস্কিং, এবং আপনার অ্যাপের একাধিক দৃষ্টান্তের অনুমতি দেওয়া ব্যবহারকারীদের উত্পাদনশীলতাকে অত্যন্ত বৃদ্ধি করতে পারে।

Android 15 প্রবর্তন করেছে PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI , যে অ্যাপগুলিকে একাধিক দৃষ্টান্ত হিসাবে চালু করার অনুমতি দেওয়ার জন্য অ্যাপটির জন্য সিস্টেম UI দেখানো উচিত তা নির্দিষ্ট করতে সেট করতে পারে৷

টেনে আনা অঙ্গভঙ্গি সহ অ্যাপের দৃষ্টান্তগুলি পরিচালনা করুন

মাল্টি-উইন্ডো মোডে, ব্যবহারকারীরা অ্যাপের উইন্ডো থেকে একটি ভিউ এলিমেন্ট টেনে এনে একটি নতুন অ্যাপ ইন্সট্যান্স শুরু করতে পারেন। ব্যবহারকারীরা একই অ্যাপের দৃষ্টান্তগুলির মধ্যে উপাদানগুলি সরাতে পারে।

চিত্র 7. ডেস্কটপ উইন্ডো থেকে একটি ট্যাব টেনে ক্রোমের একটি নতুন উদাহরণ শুরু করুন৷

অ্যান্ড্রয়েড 15 ড্র্যাগ এবং ড্রপ আচরণ কাস্টমাইজ করতে দুটি পতাকা প্রবর্তন করেছে:

  • DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG : নির্দেশ করে যে কোনো দৃশ্যমান উইন্ডো ড্রপ পরিচালনা না করলে একটি আন-হ্যান্ডেলড ড্র্যাগ সিস্টেমে শুরু করার জন্য অর্পণ করা উচিত। এই পতাকাটি ব্যবহার করার সময়, কলকারীকে অবশ্যই একটি Item সাথে ClipData প্রদান করতে হবে যাতে চালু করা একটি কার্যকলাপের জন্য একটি অপরিবর্তনীয় IntentSender রয়েছে (দেখুন ClipData.Item.Builder#setIntentSender() )। সিস্টেমটি উদ্দেশ্যটি চালু করতে পারে বা বর্তমান স্ক্রীনের আকার বা উইন্ডো মোডের মতো বিষয়গুলির উপর ভিত্তি করে নয়। যদি সিস্টেমটি অভিপ্রায় চালু না করে, তবে অভিপ্রায়টি স্বাভাবিক টেনে ও ড্রপ প্রবাহের মাধ্যমে বাতিল করা হয়।

  • DRAG_FLAG_GLOBAL_SAME_APPLICATION : নির্দেশ করে যে একটি ড্র্যাগ অপারেশন উইন্ডোর সীমানা অতিক্রম করতে পারে (একই অ্যাপ্লিকেশনের একাধিক উদাহরণের জন্য)।

    যখন startDragAndDrop() এই ফ্ল্যাগ সেটের সাথে কল করা হয়, শুধুমাত্র একই অ্যাপ্লিকেশনের অন্তর্গত দৃশ্যমান উইন্ডোগুলি ড্র্যাগ অপারেশনে অংশগ্রহণ করতে এবং টেনে আনা সামগ্রী গ্রহণ করতে সক্ষম হয়।

চিত্র 8. Chrome অ্যাপের দুটি উদাহরণের মধ্যে একটি ট্যাব সরান৷

অতিরিক্ত অপ্টিমাইজেশান

ডেস্কটপ উইন্ডো থেকে পূর্ণ স্ক্রিনে অ্যাপ লঞ্চ এবং ট্রানজিশন অ্যাপ কাস্টমাইজ করুন।

ডিফল্ট আকার এবং অবস্থান নির্দিষ্ট করুন

সমস্ত অ্যাপ্লিকেশানগুলি, এমনকি যদি আকার পরিবর্তন করা যায়, ব্যবহারকারীর মান অফার করার জন্য একটি বড় উইন্ডোর প্রয়োজন হয় না৷ আপনি ActivityOptions#setLaunchBounds() পদ্ধতি ব্যবহার করতে পারেন একটি ডিফল্ট আকার এবং অবস্থান নির্দিষ্ট করার জন্য যখন একটি কার্যকলাপ চালু হয়।

ডেস্কটপ স্পেস থেকে পূর্ণ-স্ক্রীনে প্রবেশ করুন

Activity#requestFullScreenMode() কল করে অ্যাপগুলি পূর্ণ-স্ক্রীনে যেতে পারে। পদ্ধতিটি ডেস্কটপ উইন্ডো থেকে সরাসরি অ্যাপটিকে পূর্ণ স্ক্রীন প্রদর্শন করে।