দাবি পরিত্যাগী
এই উত্তরটি 2013 থেকে এবং মারাত্মকভাবে পুরানো। অ্যান্ড্রয়েড 3.2 হিসাবে এখন স্ক্রিন ঘনত্বের 6 টি গ্রুপ রয়েছে। আমি সক্ষম হবার সাথে সাথে এই উত্তরটি আপডেট হবে তবে কোনও ইটিএ ছাড়াই। এই মুহুর্তে সমস্ত ঘনত্বের জন্য অফিসিয়াল ডকুমেন্টেশন পড়ুন (যদিও নির্দিষ্ট পিক্সেল আকারের তথ্য সন্ধান করা সবসময় কঠিন)।
এখানে tl / dr সংস্করণ
4 টি চিত্র তৈরি করুন, প্রতিটি পর্দার ঘনত্বের জন্য একটি:
- xlarge (xhdpi): 640x960
- বৃহত (এইচডিপিআই): 480x800
- মাঝারি (এমডিপিআই): 320x480
- ছোট (ldpi): 240x320
অ্যান্ড্রয়েড বিকাশকারী গাইডে 9-প্যাচের চিত্রের ভূমিকা পড়ুন
- চিত্রগুলি এমন ডিজাইন করুন যেখানে এমন ফলাফল রয়েছে যা শেষ ফলাফলের সাথে আপস না করে নিরাপদে প্রসারিত হতে পারে
এটির সাহায্যে অ্যান্ড্রয়েড ডিভাইসের চিত্র ঘনত্বের জন্য উপযুক্ত ফাইলটি নির্বাচন করবে, তারপরে এটি 9-প্যাচের মান অনুযায়ী চিত্রটি প্রসারিত করবে।
টিএল এর শেষ; ড। সামনে সম্পূর্ণ পোস্ট
আমি প্রশ্নের নকশা-সম্পর্কিত দিকটি সম্পর্কে শ্রদ্ধার সাথে জবাব দিচ্ছি। আমি বিকাশকারী নই, তাই প্রদত্ত অনেকগুলি সমাধান বাস্তবায়নের জন্য কোড সরবরাহ করতে সক্ষম হবো না। হায়, আমার উদ্দেশ্য হ'ল ডিজাইনারদের সাহায্য করা যারা আমার প্রথম অ্যান্ড্রয়েড অ্যাপ বিকাশ করতে সাহায্য করার সময় আমার মতো হারিয়ে গিয়েছিল।
সমস্ত আকার মাপসই করা
অ্যান্ড্রয়েডের সাহায্যে সংস্থাগুলি তাদের মোবাইল ফোন এবং প্রায় যে কোনও আকারের টেবিলগুলি, তাদের পছন্দসই রেজোলিউশন বিকাশ করতে পারে। যার কারণে, কোনও স্প্ল্যাশ স্ক্রিনের জন্য কোনও "সঠিক চিত্রের আকার" নেই, কারণ কোনও স্থির স্ক্রিন রেজোলিউশন নেই। এটি স্প্ল্যাশ স্ক্রিনটি বাস্তবায়ন করতে চায় এমন লোকদের জন্য সমস্যা তৈরি করে।
আপনার ব্যবহারকারীরা কি সত্যিই একটি স্প্ল্যাশ স্ক্রিন দেখতে চান?
(একদিকে নোটে, স্প্ল্যাশ স্ক্রিনগুলি ব্যবহারযোগ্যতা লোকদের মধ্যে কিছুটা নিরুৎসাহিত করা হয়েছে ar যুক্তিযুক্ত যে ব্যবহারকারী ইতিমধ্যে জানে যে তিনি কোন অ্যাপটি ট্যাপ করেছিলেন এবং আপনার চিত্রটি একটি স্প্ল্যাশ স্ক্রিন সহ ব্র্যান্ড করা প্রয়োজনীয় নয়, কারণ এটি কেবল ব্যবহারকারীর অভিজ্ঞতাকে বাধা দেয়) একটি "বিজ্ঞাপন"। এটি অ্যাপ্লিকেশনগুলিতে ব্যবহার করা উচিত যা গেমস এবং এগুলি সহ প্রাথমিকভাবে (5 এস +) শুরু করার সময় কিছুটা যথেষ্ট লোডিংয়ের প্রয়োজন হয়, যাতে অ্যাপটি ক্র্যাশ হয়েছিল কিনা তা ভেবে ব্যবহারকারী আটকে না যায়)
পর্দার ঘনত্ব; 4 ক্লাস
সুতরাং, বাজারে ফোনে বিভিন্ন স্ক্রিন রেজোলিউশন দেওয়া, গুগল কিছু বিকল্প এবং নিফটি সমাধান কার্যকর করতে পারে যা সহায়তা করতে পারে। আপনার প্রথমে জানতে হবে অ্যান্ড্রয়েড সমস্ত স্ক্রিনকে 4 টি স্বতন্ত্র স্ক্রিন ঘনত্বগুলিতে পৃথক করে:
- নিম্ন ঘনত্ব (ldpi ~ 120dpi)
- মাঝারি ঘনত্ব (এমডিপিআই ~ 160 ডিপিআই)
- উচ্চ ঘনত্ব (এইচডিপিআই ~ 240 ডিপিআই)
- অতিরিক্ত-উচ্চ ঘনত্ব (xhdpi 20 320dpi) (এই ডিপিআই মানগুলি আনুমানিক, কারণ কাস্টম বিল্ট ডিভাইসগুলির পৃথক পৃথক ডিপিআই মান থাকবে)
আপনাকে (যদি আপনি ডিজাইনার হন) এর থেকে যা জানা দরকার তা হ'ল অ্যান্ড্রয়েড মূলত ডিভাইসের উপর নির্ভর করে প্রদর্শনের জন্য 4 টি চিত্র থেকে চয়ন করে। সুতরাং আপনাকে মূলত 4 টি আলাদা চিত্র ডিজাইন করতে হবে (যদিও আরও অনেকগুলি বিভিন্ন ফর্ম্যাটের জন্য যেমন ওয়াইডস্ক্রিন, প্রতিকৃতি / ল্যান্ডস্কেপ মোড ইত্যাদির জন্য বিকাশ করা যেতে পারে)।
এই বিষয়টি মনে রেখেই: আপনি অ্যান্ড্রয়েডে ব্যবহৃত প্রতিটি রেজোলিউশনের জন্য কোনও স্ক্রিন ডিজাইন না করলে আপনার চিত্রটি স্ক্রিনের আকারের সাথে প্রসারিত করবে। এবং যতক্ষণ না আপনার চিত্রটি মূলত গ্রেডিয়েন্ট বা অস্পষ্ট না হয় আপনি প্রসারিতের সাথে কিছুটা অনাকাঙ্ক্ষিত বিকৃতি পাবেন। সুতরাং আপনার কাছে মূলত দুটি বিকল্প রয়েছে: প্রতিটি পর্দার আকার / ঘনত্বের সংমিশ্রণের জন্য একটি চিত্র তৈরি করুন বা চারটি 9-প্যাচ চিত্র তৈরি করুন।
সবচেয়ে কঠিন সমাধানটি প্রতিটি একক রেজোলিউশনের জন্য আলাদা স্প্ল্যাশ স্ক্রিন ডিজাইন করা। আপনি এই পৃষ্ঠার শেষে টেবিলের রেজোলিউশনগুলি অনুসরণ করে শুরু করতে পারেন (আরও রয়েছে Example উদাহরণ: 960 x 720 সেখানে তালিকাভুক্ত নয়)। এবং ধরে নিচ্ছি যে আপনার কাছে চিত্রটিতে কিছু ছোট বিশদ রয়েছে যেমন ছোট পাঠ্য, আপনাকে প্রতিটি রেজোলিউশনের জন্য একাধিক স্ক্রিন ডিজাইন করতে হবে। উদাহরণস্বরূপ, একটি মাঝারি স্ক্রিনে প্রদর্শিত 480x800 চিত্রটি দেখতে ঠিক আছে, তবে একটি ছোট স্ক্রিনে (উচ্চ ঘনত্ব / ডিপিআই সহ) লোগোটি খুব ছোট হতে পারে বা কিছু পাঠ্য অপঠনযোগ্য হতে পারে।
9-প্যাচ চিত্র
অন্য সমাধানটি 9-প্যাচ চিত্র তৈরি করা । এটি মূলত আপনার চিত্রের চারপাশে 1 পিক্সেল-স্বচ্ছ-সীমানা এবং এই সীমানার উপরের এবং বাম অঞ্চলে কালো পিক্সেল অঙ্কন করে আপনি আপনার চিত্রের কোন অংশটি প্রসারিত করতে পারবেন তা নির্ধারণ করতে পারবেন। 9-প্যাচ চিত্রগুলি কীভাবে কাজ করে সে সম্পর্কে আমি বিশদে যাব না তবে সংক্ষেপে, উপরে এবং বাম অঞ্চলে চিহ্নিত পিক্সেলগুলি পিক্সেল যা চিত্রটি প্রসারিত করার জন্য পুনরাবৃত্তি হবে।
কয়েকটি স্থল নিয়ম
- আপনি এই চিত্রগুলি ফটোশপে তৈরি করতে পারেন (বা কোনও চিত্র সম্পাদনা সফ্টওয়্যার যা সঠিকভাবে স্বচ্ছ পিএনজি তৈরি করতে পারে)।
- 1 পিক্সেল সীমানাটি সম্পূর্ণ ট্রান্সপারেন্ট হতে হবে।
- 1-পিক্সেলের স্বচ্ছ সীমানাটি কেবল আপনার উপরের এবং বামে নয়, সমস্ত চিত্রের চারপাশে থাকতে হবে।
- আপনি এই অঞ্চলে কেবল কালো (# 000000) পিক্সেল আঁকতে পারেন।
- উপরের এবং বাম সীমানা (যা চিত্র প্রসারিতকে সংজ্ঞায়িত করে) কেবল একটি বিন্দু (1px x 1px), দুটি বিন্দু (1px x 1px উভয়) বা একটানা লাইন (প্রস্থ x 1px বা 1px x উচ্চতা) থাকতে পারে।
- আপনি যদি 2 টি বিন্দু ব্যবহার করতে চান তবে চিত্রটি আনুপাতিকভাবে প্রসারিত হবে (সুতরাং প্রতিটি বিন্দু চূড়ান্ত প্রস্থ / উচ্চতা অর্জন না হওয়া পর্যন্ত প্রসারিত প্রসারিত হবে)
- 1px সীমানাটি উদ্দেশ্য ভিত্তিক ফাইলের মাত্রা ছাড়াও থাকতে হবে। সুতরাং একটি 100x100 9-প্যাচ চিত্রটিতে আসলে 102x102 (উপরে, নীচে, বাম এবং ডানদিকে 100x100 + 1px) থাকতে হবে
- 9-প্যাচ চিত্রগুলি * .9.png দিয়ে শেষ করতে হবে
সুতরাং আপনি আপনার লোগোটির উভয় পাশে (শীর্ষ সীমানায়) 1 টি এবং তার উপরে এবং নীচে (বাম সীমান্তে) 1 ডট রাখতে পারেন এবং এই চিহ্নিত সারি এবং কলামগুলি প্রসারিত করার জন্য কেবল পিক্সেল হবে।
উদাহরণ
এখানে একটি 9-প্যাচ চিত্র, 102x102px (অ্যাপের উদ্দেশ্যে 100x100 চূড়ান্ত আকার):
এখানে একই চিত্রের 200% জুম রয়েছে:
কোন সারি / কলামগুলি প্রসারিত হবে তা বলে উপরে এবং বামে 1px চিহ্নগুলি লক্ষ্য করুন।
অ্যাপ্লিকেশনটির ভিতরে 100x100 এ এই চিত্রটি কেমন হবে তা এখানে দেখুন:
460x140 এ প্রসারিত হলে এটি কী চায় তা এখানে রয়েছে:
একটি শেষ বিষয় বিবেচনা করা উচিত। এই চিত্রগুলি আপনার মনিটরের স্ক্রিনে এবং বেশিরভাগ মোবাইলে সূক্ষ্ম দেখতে পারে তবে ডিভাইসটির চিত্রের উচ্চ ঘনত্ব (ডিপিআই) থাকলে চিত্রটি খুব ছোট দেখাচ্ছে small সম্ভবত এখনও সুগঠিত, তবে 1920x1200 রেজোলিউশনের ট্যাবলেটে চিত্রটি মাঝখানে খুব ছোট বর্গ হিসাবে উপস্থিত হবে। তাহলে সমাধান কী? 4 টি আলাদা 9-প্যাচ লঞ্চের চিত্রগুলি ডিজাইন করুন, প্রতিটি আলাদা ঘনত্বের সেটের জন্য। কোনও সঙ্কোচন ঘটবে না তা নিশ্চিত করতে আপনার প্রতিটি ঘনত্বের বিভাগের জন্য সর্বনিম্ন সাধারণ রেজোলিউশনের নকশা করা উচিত। সঙ্কুচিত হওয়া এখানে অনাকাঙ্ক্ষিত কারণ 9-প্যাচ কেবল প্রসারিতের জন্য অ্যাকাউন্টস, সুতরাং সঙ্কুচিত প্রক্রিয়ায় ছোট পাঠ্য এবং অন্যান্য উপাদানগুলি স্বতন্ত্রতা হারাতে পারে।
প্রতিটি ঘনত্বের বিভাগের জন্য সবচেয়ে ছোট, সর্বাধিক সাধারণ রেজোলিউশনের তালিকা এখানে রয়েছে:
- xlarge (xhdpi): 640x960
- বৃহত (এইচডিপিআই): 480x800
- মাঝারি (এমডিপিআই): 320x480
- ছোট (ldpi): 240x320
সুতরাং উপরোক্ত রেজোলিউশনে চারটি স্প্ল্যাশ স্ক্রিন ডিজাইন করুন, চিত্রগুলি প্রসারিত করুন, ক্যানভাসের চারপাশে 1px স্বচ্ছ সীমানা স্থাপন করুন এবং কোন সারি / কলামগুলি প্রসারিত হবে তা চিহ্নিত করুন। মনে রাখবেন এই চিত্রগুলি ঘনত্ব বিভাগে যে কোনও ডিভাইসের জন্য ব্যবহৃত হবে , সুতরাং আপনার এলডিপিআই ইমেজ (240 x 320) ছোট ইমেজের ঘনত্ব (~ 120 ডিপিআই) সহ একটি অতিরিক্ত বড় ট্যাবলেটে 1024x600 পর্যন্ত প্রসারিত হতে পারে। সুতরাং 9-প্যাচ স্ট্র্যাচিংয়ের সেরা সমাধান, যতক্ষণ না আপনি একটি স্প্ল্যাশ স্ক্রিনের জন্য কোনও ফটো বা জটিল গ্রাফিক্স চান না (আপনি ডিজাইনটি তৈরি করার সাথে সাথে এই সীমাবদ্ধতার কথা মনে রাখবেন)।
আবার, এই প্রসারিত না হওয়ার একমাত্র উপায় হ'ল প্রতিটি রেজোলিউশন (বা প্রতিটি রেজোলিউশন-ডেনসিটির সংমিশ্রনের জন্য একটি, যদি আপনি উচ্চ / নিম্ন ঘনত্বের ডিভাইসে চিত্রগুলি খুব ছোট / বড় হওয়া এড়াতে চান) ডিজাইন করা বা বলুন চিত্রটি প্রসারিত না করার এবং একটি পটভূমির রঙ উপস্থিত না হওয়া যেখানেই প্রদর্শিত হবে (এছাড়াও মনে রাখবেন যে অ্যান্ড্রয়েড ইঞ্জিন দ্বারা রেন্ডার করা একটি নির্দিষ্ট রঙ সম্ভবত ফটোশপের দ্বারা রেন্ডার একই নির্দিষ্ট রঙের চেয়ে আলাদা দেখাবে, রঙ প্রোফাইলগুলির কারণে)।
আমি আশা করি এটি কোনও অর্থবোধ করেছে। শুভকামনা!