ওরিয়েন্টেশন এবং আকার পরিবর্তনের উপর বিধিনিষেধ উপেক্ষা করা হয়

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

অভিমুখ, আকার পরিবর্তনযোগ্যতা এবং আকৃতি অনুপাতের সীমাবদ্ধতা উপেক্ষা করুন

অ্যান্ড্রয়েড ১৭ (এপিআই লেভেল ৩৭) বা তার উচ্চতর সংস্করণকে লক্ষ্য করে তৈরি অ্যাপগুলির ক্ষেত্রে, যেসব ডিসপ্লের সর্বনিম্ন প্রস্থ ৬০০ডিপি-র বেশি, সেগুলিতে ওরিয়েন্টেশন, রিসাইজযোগ্যতা এবং অ্যাসপেক্ট রেশিওর সীমাবদ্ধতা আর প্রযোজ্য হবে না। অ্যাপগুলি অ্যাসপেক্ট রেশিও বা ব্যবহারকারীর পছন্দের ওরিয়েন্টেশন নির্বিশেষে সম্পূর্ণ ডিসপ্লে উইন্ডো জুড়ে থাকবে এবং পিলরবক্সিং ব্যবহৃত হবে না।

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

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

আপনি অ্যাপ কম্প্যাটিবিলিটি ফ্রেমওয়ার্ক ব্যবহার করে এবং UNIVERSAL_RESIZABLE_BY_DEFAULT কম্প্যাট ফ্ল্যাগটি সক্রিয় করার মাধ্যমেও এই আচরণটি পরীক্ষা করতে পারেন।

সাধারণ ব্রেকিং পরিবর্তনগুলি

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

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

ডিভাইস ঘোরানোর অনুমতি দিলে অ্যাক্টিভিটি বারবার তৈরি হয়, যা সঠিকভাবে সংরক্ষণ করা না হলে ইউজার স্টেট হারিয়ে যাওয়ার কারণ হতে পারে। কীভাবে UI স্টেট সঠিকভাবে সংরক্ষণ করতে হয়, তা জানতে 'Save UI states' অংশটি দেখুন।

বাস্তবায়নের বিবরণ

বড় স্ক্রিনের ডিভাইসগুলিতে ফুল-স্ক্রিন এবং মাল্টি-উইন্ডো মোডে নিম্নলিখিত ম্যানিফেস্ট অ্যাট্রিবিউট এবং রানটাইম এপিআইগুলি উপেক্ষা করা হয়:

screenOrientation, setRequestedOrientation() , এবং getRequestedOrientation() এর নিম্নলিখিত মানগুলি উপেক্ষা করা হয়:

  • portrait
  • reversePortrait
  • sensorPortrait
  • userPortrait
  • landscape
  • reverseLandscape
  • sensorLandscape
  • userLandscape

ডিসপ্লে রিসাইজ করার ক্ষেত্রে, android:resizeableActivity="false", android:minAspectRatio এবং android:maxAspectRatio কোনো প্রভাব নেই।

ব্যতিক্রম

অ্যান্ড্রয়েড ১৭-এর ওরিয়েন্টেশন, রিসাইজযোগ্যতা এবং অ্যাসপেক্ট রেশিও সংক্রান্ত সীমাবদ্ধতাগুলো নিম্নলিখিত পরিস্থিতিগুলোতে প্রযোজ্য নয়:

  • গেমস ( android:appCategory ফ্ল্যাগের উপর ভিত্তি করে)
  • ডিভাইসের অ্যাসপেক্ট রেশিও সেটিংসে ব্যবহারকারীরা অ্যাপটির ডিফল্ট আচরণ স্পষ্টভাবে বেছে নিচ্ছেন
  • যেসব স্ক্রিনের সর্বনিম্ন প্রস্থ sw600dp এর চেয়ে কম