পাঠ্য আকার এবং বিভিন্ন অ্যান্ড্রয়েড স্ক্রিন আকার


121

আমি জানি, এটি ইতিমধ্যে 1000 বার আলোচনা হয়েছিল, তবে আমি বিভিন্ন পর্দার আকারের জন্য পাঠ্য আকারকে সামঞ্জস্য করতে পারি না। আমি আমার কাস্টম স্টাইলে আকারের ইউনিট হিসাবে 'স্প' ব্যবহার করার চেষ্টা করি:

<style name="CustumButtonStyle" parent="@android:style/Widget.Button">
    ...
    <item name="android:textSize">30sp</item>
    ...
</style>

২.7 কিউভিএ-তে এটি দেখতে ঠিক আছে:

2.7QVGA 30sp

তবে 7 ই ডাব্লুএসভিজিএতে এটির মতো দেখাচ্ছে:

7in ডাব্লুএসভিজিএ 30 এসপি

আমি একই ফল দিয়ে 'এসপি' এবং 'ডিপি' উভয়ই ব্যবহার করার চেষ্টা করেছি।

যে কোনও পর্দায় এই বোতামগুলি কীভাবে একই রকম হয় তা কী আপনি দয়া করে ব্যাখ্যা করতে পারেন?

সম্পূর্ণ কাস্টম বোতাম শৈলী

<style name="CustumButtonStyle" parent="@android:style/Widget.Button">
    <item name="android:background">@drawable/custom_button</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_margin">3dp</item>
    <item name="android:textColor">#ffffff</item>
    <item name="android:gravity">center</item>
    <item name="android:textSize">30sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowDx">1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">2</item>
</style>

এবং আমার অ্যাপ্লিকেশন থিমে আমার আছে

<item name="android:buttonStyle">@style/CustumButtonStyle</item>

এবং আমার লেআউট আছে:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:background="@drawable/grid"
android:gravity="center"
android:orientation="vertical" android:layout_height="fill_parent">

<Button
    android:id="@+id/buttonContinue"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="@string/continue_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>



<Button
    android:id="@+id/buttonNewGame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/buttonContinue"
    android:layout_alignRight="@+id/buttonContinue"
    android:layout_below="@+id/buttonContinue"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="@string/new_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>



<Button
    android:id="@+id/ButtonAbout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/buttonNewGame"
    android:layout_alignRight="@+id/buttonNewGame"
    android:layout_below="@+id/buttonNewGame"
    android:layout_gravity="center"
    android:gravity="center"
    android:text="@string/about" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/>


আপনার পর্দায় এগুলি দেখতে একই রকম। নিশ্চিত হয়ে নিন যে আপনার দর্শকের স্কেলটি 100%
দিমিত্রি জায়েটসেভ

আপনি এখান থেকে উত্তর পেতে পারেন stackoverflow.com/questions/16706076/...
Bhavesh Jethani

উত্তর:


160

@ ফোর্লেইন আমি মনে করি আপনার ডিজাইনের জন্য এই গুগল আইও পিডিএফ চেক করা দরকার । সেই পিডিএফটিতে পৃষ্ঠা নং: to 77 এ যান যেখানে আপনি দেখতে পাবেন কীভাবে অ্যান্ড্রয়েডের বিভিন্ন ডিভাইসের জন্য dimens.xML ব্যবহারের পরামর্শ দেওয়া হচ্ছে উদাহরণের নীচে কাঠামোটি দেখুন:

res/values/dimens.xml

res/values-small/dimens.xml

res/values-normal/dimens.xml

res/values-large/dimens.xml

res/values-xlarge/dimens.xml

উদাহরণস্বরূপ আপনি মানগুলিতে dimens.xML এর নীচে ব্যবহার করেছেন।

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">18sp</dimen>
</resources>

অন্যান্য মান ফোল্ডারে আপনার পাঠ্যের আকারের জন্য মানগুলি পরিবর্তন করতে হবে।

দ্রষ্টব্য: @ স্প্পঞ্চি দ্বারা নির্দেশিত হিসাবে অ্যান্ড্রয়েড ৩.২ থেকে নিম্নলিখিতগুলির পক্ষে ছোট, সাধারণ, বৃহত্তর এবং এক্সলার্জকে অবহেলা করা হয়েছে:

অ্যান্ড্রয়েড 3.2 এর জন্য ট্যাবলেট লেআউটগুলি ঘোষণা করা হচ্ছে

অ্যান্ড্রয়েড 3.0.০ চলমান ট্যাবলেটগুলির প্রথম প্রজন্মের জন্য, ট্যাবলেট লেআউটগুলি ঘোষণার যথাযথ উপায় হ'ল এক্সলেজ কনফিগারেশন কোয়ালিফায়ার (উদাহরণস্বরূপ, রেজ / লেআউট-এক্সলারেজ /) সহ একটি ডিরেক্টরিতে রাখা। অন্যান্য ধরণের ট্যাবলেট এবং স্ক্রিন মাপের জন্য, বিশেষত, 7 টি "ট্যাবলেট" অ্যান্ড্রয়েড 3.2 আরও স্বতন্ত্র পর্দার আকারের জন্য সংস্থান নির্দিষ্ট করার জন্য একটি নতুন উপায় প্রবর্তন করে The আপনার লেআউটটিকে সাধারণ আকারের গোষ্ঠীগুলিতে ফিট করার চেষ্টা করার পরিবর্তে (যেমন বড় বা এক্স্লারেজ)।

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

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

আপনি হয় আপনার সর্বনিম্ন আকার হিসাবে একটি প্রস্থ বা নকশা এটি চয়ন করা উচিত, বা আপনার লেআউটটি সম্পূর্ণ হয়ে গেলে এটির মধ্যে সবচেয়ে ছোট প্রস্থটি কী সমর্থন করবে তা পরীক্ষা করা উচিত।

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

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

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

সারণী ২. স্ক্রিন আকারের জন্য নতুন কনফিগারেশন বাছাইকারী (অ্যান্ড্রয়েড ৩.২ এ প্রবর্তিত)। স্ক্রীন কনফিগারেশন বাছাইকারী মানগুলি বর্ণনাের সবচেয়ে ছোট প্রশস্ততা swdp

উদাহরণ: sw600dp sw720dp

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

উদাহরণস্বরূপ, যদি আপনার লেআউটটির প্রয়োজন হয় যে এর সর্বকালের পর্দার ক্ষেত্রের ক্ষুদ্রতম মাত্রা কমপক্ষে d০০ ডিপি হওয়া উচিত, তবে আপনি এই কোয়ালিফায়ারটিকে লেআউট রিসোর্স, রেজ / লেআউট-এস 00০০ ডিপি / তৈরি করতে পারেন। সিস্টেমটি কেবল তখনই এই সংস্থানগুলি ব্যবহার করবে যখন উপলভ্য স্ক্রিনের ক্ষুদ্রতম মাত্রাটি কমপক্ষে 600dp হয়, 600dp পার্শ্বটি ব্যবহারকারী-বিবেচিত উচ্চতা বা প্রস্থ নির্বিশেষে। ক্ষুদ্রতম প্রস্থ ডিভাইসের একটি স্থির পর্দার আকারের বৈশিষ্ট্য; স্ক্রিনের ওরিয়েন্টেশন পরিবর্তিত হলে ডিভাইসের ক্ষুদ্রতম প্রস্থ পরিবর্তন হয় না।

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

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

উদাহরণ: w720dp w1024dp

ডিপি ইউনিটগুলিতে সর্বনিম্ন উপলব্ধ প্রস্থ নির্দিষ্ট করে যেখানে রিসোর্সগুলি ব্যবহার করা উচিত — মান দ্বারা নির্ধারিত। যখন আপনার ইউআইয়ের জন্য উপলব্ধ প্রকৃত প্রস্থটি প্রতিবিম্বিত করতে পর্দার ওরিয়েন্টেশন ল্যান্ডস্কেপ এবং প্রতিকৃতির মধ্যে চলে যায় তখন প্রস্থের পরিবর্তনের জন্য সিস্টেমের সাথে সম্পর্কিত মান value

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

উদাহরণ: h720dp h1024dp ইত্যাদি

ডিপি ইউনিটগুলিতে নূন্যতম পর্দার উচ্চতা নির্দিষ্ট করে যেখানে সংস্থানগুলি ব্যবহার করা উচিত the মান দ্বারা নির্ধারিত। যখন আপনার ইউআইয়ের জন্য উপলব্ধ প্রকৃত উচ্চতা প্রতিফলিত করতে পর্দার ওরিয়েন্টেশন ল্যান্ডস্কেপ এবং প্রতিকৃতির মধ্যে চলে যায় তখন উচ্চতার পরিবর্তনের জন্য সিস্টেমের সাথে সম্পর্কিত মানটি পরিবর্তিত হয়।

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

এই কোয়ালিফায়ারগুলি ব্যবহার করার সময় স্ক্রিন আকারের গোষ্ঠীগুলি ব্যবহার করার চেয়ে জটিল মনে হতে পারে, আপনি একবার আপনার ইউআইয়ের প্রয়োজনীয়তা নির্ধারণ করার পরে এটি সহজতর হওয়া উচিত। আপনি যখন আপনার ইউআই ডিজাইন করেন, তখন আপনার মূল বিষয়টি হ'ল আসল আকার যা আপনার হ্যান্ডসেট-স্টাইলের ইউআই এবং একাধিক প্যান ব্যবহার করে এমন ট্যাবলেট-স্টাইলের ইউআইয়ের মধ্যে স্যুইচ করে। এই স্যুইচটির সঠিক পয়েন্টটি আপনার নির্দিষ্ট ডিজাইনের উপর নির্ভর করবে — সম্ভবত আপনার ট্যাবলেট বিন্যাসের জন্য আপনার 720 ডিপি প্রস্থের দরকার হতে পারে, 600 ডিপি যথেষ্ট, বা 480 ডিপি বা এর মধ্যে কিছু সংখ্যক সংখ্যা। টেবিল 2 এ এই যোগ্যতা ব্যবহার করে, আপনি যে লেআউটটি পরিবর্তন করেছেন তার সঠিক আকারের নিয়ন্ত্রণে।

এই আকারের কনফিগারেশন যোগ্যতা সম্পর্কে আরও আলোচনার জন্য, সরবরাহকারী সংস্থান দস্তাবেজটি দেখুন। কনফিগারেশন উদাহরণ

বিভিন্ন ধরণের ডিভাইসের জন্য আপনার কয়েকটি ডিজাইনকে লক্ষ্য করতে আপনাকে সহায়তা করতে, এখানে সাধারণ স্ক্রিনের প্রস্থের জন্য কয়েকটি নম্বর দেওয়া হয়েছে:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7 tablet (600x1024 mdpi).
720dp: a 10 tablet (720x1280 mdpi, 800x1280 mdpi, etc).

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

রেজ / লেআউট / মেইনএ্যাকটিভিটি.এক্সএমএল # হ্যান্ডসেটের জন্য রেজোআউট / লেআউট-sw600dp / main_activity.xML # ট্যাবলেটগুলির জন্য

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

অন্যান্য ক্ষেত্রে যেখানে আপনি আপনার ইউআইকে আরও 7 বা 10 "ট্যাবলেটগুলির মতো আকারের মধ্যে আলাদা করতে নিজের কাস্টমাইজ করতে চান, আপনি অতিরিক্ত ক্ষুদ্রতম প্রস্থের লেআউটগুলি সংজ্ঞায়িত করতে পারেন:

রেজ / লেআউট / মেইনএ্যাকটিভিটি.এক্সএমএল # হ্যান্ডসেটের জন্য (d০০ ডিপি উপলব্ধ প্রস্থের চেয়ে কম) রেজ / লেআউট-সো 00০০ ডিপি / মেইনএ্যাকটিভিটি.এক্সএমএল # ”" ট্যাবলেট (600 ডিপি প্রশস্ত এবং বৃহত্তর) রেজ / লেআউট-sw720dp / মূল_অ্যাক্টিভিটি.এক্সএমএল

10 "ট্যাবলেটগুলির জন্য (720 ডিপি প্রশস্ত এবং আরও বড়)

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

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

রেজ / লেআউট / মেইনএ্যাকটিভিটি.এক্সএমএল # হ্যান্ডসেটের জন্য (d০০ ডিপি উপলব্ধ প্রস্থের চেয়ে ছোট) রেজ / লেআউট-ডাব্লু 00০০ ডিপি / মেইনএ্যাকটিভিটি.এক্সএমএল # মাল্টি-পেন (d০০ ডিপি উপলব্ধ প্রস্থ বা আরও বেশি কিছু সহ)

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

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


7
এই ছোট / সাধারণ / বৃহত্তর / এক্সলারেজ এই মুহুর্তে (ডিসেম্বর 2014) অবচয় করা হয়েছে। পছন্দসই উপায়টি এখন "swxxxdp" ব্যবহার করছে। বিকাশকারী.অ্যান্ড্রয়েড.
com

1
@ স্পিঞ্চি আপনাকে ধন্যবাদ, আপনার উত্তর হিসাবে এটি পোস্ট করা উচিত। এছাড়াও কোনও সুপারিশকৃত ডিপি রয়েছে? উদাহরণস্বরূপ মানগুলি: 100sw, 200sw, 400sw, 600sw।
ভিন্স ভি।

19

আমি মনে করি এই থ্রেডে জবাব দিতে দেরি হয়েছে। তবে আমি পার্থক্য সমাধানের ডিভাইসগুলির চেয়ে পাঠ্য আকারের সমস্যা সমাধানের জন্য আমার ধারণা বা উপায়টি ভাগ করতে চাই। অনেক অ্যান্ড্রয়েড বিকাশকারী সাইট পরামর্শ দেয় যে আমাদের পাঠ্য আকারের জন্য এসপি ইউনিট ব্যবহার করতে হবে যা পার্থক্য সমাধানের ডিভাইসের জন্য পাঠ্য আকার পরিচালনা করবে। তবে আমি সর্বদা পছন্দসই ফলাফল পেতে অক্ষম। সুতরাং আমি একটি সমাধান পেয়েছি যা আমি আমার শেষ 4-5 টি প্রকল্প এবং এটির কাজটি সূক্ষ্ম থেকে ব্যবহার করছি। আমার পরামর্শ অনুসারে, আপনাকে প্রতিটি রেজোলিউশন ডিভাইসের জন্য পাঠ্য আকার রাখতে হবে যা কিছুটা ক্লান্তিকর কাজ, তবে এটি আপনার প্রয়োজনীয়তা পূরণ করবে। প্রতিটি বিকাশকারী অবশ্যই 4: 6: 8: 12 (এইচ: এক্সএইচ: এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স) অনুপাত সম্পর্কে অবশ্যই শুনতে হবে । এখন ভিতরে আপনার প্রকল্পের মাঝামাঝি আপনি যে ফোল্ডারটি dimens ফাইল যেমন 4 ফোল্ডার তৈরি করতে হবে

  1. মাঝামাঝি / মান-hdpi / dimens.xml
  2. মাঝামাঝি / মান-xhdpi / dimens.xml
  3. মাঝামাঝি / মান-xxhdpi / dimens.xml
  4. মাঝামাঝি / মান-xxxhdpi / dimens.xml

এখন dimens.xML ফাইলের ভিতরে আপনাকে পাঠ্যের আকার রাখতে হবে। আমি আপনাকে মানগুলি - এইচডিপিআই-র জন্য কোড দেখাচ্ছে , একইভাবে আপনাকে অন্যান্য রেজোলিউশন মান / dimens.xML ফাইলের জন্য কোড রাখতে হবে।

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">4px</dimen>
</resources>

অন্যান্য আকারসমূহ জন্য এটি ভালো হয় xhdpi 6px: xxhdpi : 8px, xxxhdpi : 12 px। এটি উপরে উল্লিখিত অনুপাত (3: 4: 6: 8: 12) দিয়ে গণনা করা হয়। উপরের অনুপাত সহ অন্যান্য পাঠ্য আকারের উদাহরণ আলোচনা করতে দিন। আপনি যদি এইচডিপিআই-তে 12px এর পাঠ্য আকার নিতে চান তবে অন্য রেজোলিউশনে এটি হবে

  1. hdpi: 12px
  2. xhdpi: 18px
  3. xxhdpi: 24px
  4. xxxhdpi: 36px

সমস্ত রেজোলিউশনের জন্য প্রয়োজনীয় পাঠ্যের আকার বাস্তবায়নের এটি সহজ সমাধান। আমি এখানে মান-এমডিপিআই রেজোলিউশন ডিভাইসগুলি বিবেচনা করছি না । যদি কেউ এই রেজোলিউশনের জন্য পাঠ্যের আকার অন্তর্ভুক্ত করতে চান তবে রেশনটি 3: 4: 6: 8: 12 এর মতো । যে কোনও জিজ্ঞাসাতে দয়া করে আমাকে জানান। আশা করি এটি আপনার লোকদের সাহায্য করবে।


4
পাঠ্য আকারে এসপির পরিবর্তে px ব্যবহার করা খারাপ অভ্যাস নয়? Px এর পরিবর্তে এসপি ব্যবহার করে নিম্নলিখিত অনুপাতটি অর্জন করার কোনও উপায় আছে?
রেড এম

আমি এটি ঠিকঠাকভাবে কাজ করে দেখছি, তবে আমি এখনও বিভ্রান্ত হয়ে পড়েছি ডিপি / এসপির পরিবর্তে px এ মান ব্যবহার করা কি ভাল অনুশীলন? Px এর মান ব্যবহার করার জন্য আমি অফিসিয়াল ডকুমেন্টেশন থেকে কোথাও কখনও দেখিনি।
shaby

1
হরফ আকারের জন্য এসপি ব্যবহার করুন, এটি আইন। রাহুল যে পদ্ধতির দেখিয়েছেন তা সঠিক, px এর পরিবর্তে কেবল এসপি ব্যবহার করুন।
মিহির প্যাটেল

অ্যাপ্লিকেশন ফন্টের আকারটিকে সিস্টেমের ফন্টের আকারের সাথে সংযুক্ত করার জন্য প্লানিং করা থাকলে এসপি ব্যবহার করা উচিত therঅন্যদিকে এই সমাধানটি খারাপ নয়।
ইরফান উল হক

12

কখনও কখনও, কেবল তিনটি বিকল্প থাকা ভাল

 style="@android:style/TextAppearance.Small"

সাধারণ পর্দার আকার থেকে পৃথক করতে ছোট এবং বড় ব্যবহার করুন।

<TextView
            android:id="@+id/TextViewTopBarTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@android:style/TextAppearance.Small"/>

সাধারণ জন্য, আপনাকে কিছু নির্দিষ্ট করতে হবে না।

<TextView
            android:id="@+id/TextViewTopBarTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

এটি ব্যবহার করে, আপনি বিভিন্ন স্ক্রিন আকারের জন্য মাত্রা পরীক্ষা এবং নির্দিষ্টকরণ এড়াতে পারবেন।


10

আমি মাত্রা অনুসারে একই কাজ করেছি এবং এর মতো কিছু আঁকলাম (ডিপি সহ তবে কেবল পাঠ্যের জন্য এবং অঙ্কনের ক্ষেত্রে) ()

এক্সএমএল:

   <dimen name="text_size">30sp</dimen>

কোড:

   Paint p =new Paint();
       p.setTextSize(getResources().getDimension(R.dimen.text_Size));

8
আপনার dpপাঠ্যের আকারের জন্য ব্যবহার করা উচিত নয় ... spপরিবর্তে ব্যবহার করুন।
ইউশা আলেয়ুব

দয়া করে পাঠ্য আকারের জন্য এসপি ব্যবহার করুন
থিনস্কি

আপনি যখন ব্যবহারকারী পছন্দের উপর ভিত্তি করে এটির আকার পরিবর্তন করতে চান না তখন আপনি নির্দিষ্ট পরিস্থিতিতে ডিপি ব্যবহার করতে পারেন।

7

প্রত্যেকে নীচের বর্ণিত অ্যান্ড্রয়েড লাইব্রেরিটি ব্যবহার করতে পারেন যা প্রায় সমস্ত ডিভাইসের স্ক্রিনের সাথেই মাপের পাঠ্য মাপের সাথে সামঞ্জস্য করার সহজতম উপায়। এটি আসলে স্ক্রিন আকারের জন্য নতুন অ্যান্ড্রয়েড কনফিগারেশন বাছাইয়ের ভিত্তিতে বিকাশ করেছে (অ্যান্ড্রয়েড ৩.২ এ প্রবর্তিত) স্মল্লস্টউইথ swdp p

https://github.com/intuit/sdp


2
এসডিপি পর্দার আকারের জন্য; ব্যবহারের এসএসপি লেখার আকার জন্য
ecle

এটি আমার পক্ষে কাজ করে, তবে আমি সন্দেহ করি যে এখানে আরও ফাইল যুক্ত করার দরকার রয়েছে, এটি অ্যাপ্লিকেশনটির আকার বাড়িয়ে দেবে, @ মুহম্মদ আপনি যা যা প্রয়োজন তা পরিবর্তন করতে পারেন এবং কেবল ক্লাস যুক্ত করতে পারেন
কির্তিকুমার এ।

1

আপনার যদি এপিআই 26 থাকে তবে আপনি অটোসাইজ টেক্সট টাইপটি বিবেচনা করতে পারেন :

<Button
  app:autoSizeTextType="uniform" />

ডিফল্ট সেটিংটি অনুভূমিক এবং উল্লম্ব অক্ষগুলিতে টেক্সটভিউ স্কেলের অভিন্ন আকারের স্বয়ংক্রিয় আকার দিতে দেয়।

https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview


এর সাথে সমস্যাটি হ'ল এটি বিভিন্ন দৈর্ঘ্যের স্ট্রিং সহ একাধিক পাঠ্যদর্শনগুলির জন্য পাঠ্য আকারটি একসাথে পরিবর্তন করে না
সৌরভ এস নাথ

0

আমি মনে করি আপনি প্রতিটি পর্দার আকারের জন্য একাধিক লেআউট সংস্থান যুক্ত করে সংরক্ষণাগারটি করতে পারেন, উদাহরণস্বরূপ:

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size with small text
res/layout-large/my_layout.xml       // layout for large screen size with larger text
res/layout-xlarge/my_layout.xml      // layout for extra large screen size with even larger text
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

তথ্যসূত্র: 1. http://developer.android.com/guide/practices/screens_support.html


2
রেস / মান-ছোট ব্যবহার আরও ভাল হতে পারে।
einverne

1
আরও খারাপ বাস্তবায়ন এক। আমাদের কেবল 5 টি লেআউট বজায় রাখতে হবে বিভিন্ন আকারের সমর্থন করার জন্য?
সলডস্পকে

কেবলমাত্র বৈকল্পিক স্ক্রিনে পাঠ্যের আকার হ্রাস করার জন্য বিভিন্ন লেআউট তৈরি করা সত্যিই খারাপ ধারণা। আমি এটি প্রস্তাব দিচ্ছি না
সামান সালেহী

0

ফন্টের আকার সহ একই উপাদানগুলির মাপগুলি দেখাতে সমস্ত স্ক্রিনকে একত্রিত করার জন্য: - ডিজাইনের সময় আপনি যে আকারের উপযুক্ত মনে করেন তার সাথে একটি স্ক্রিন আকারে ইউআই ডিজাইন করুন অর্থাৎ টেক্সটভিউ ফন্টের আকার 4'6 ইঞ্চি সহ ডিফল্ট স্ক্রিনের আকারে 14 ডিপি করুন।

  • প্রোগ্রামিয়ালি অন্য ফোনের শারীরিক পর্দার আকার গণনা করুন অর্থাৎ অন্যান্য ফোন / স্ক্রিনের 5'2 ইঞ্চি।

  • 2 স্ক্রিনের মধ্যে পার্থক্য শতাংশ গণনা করতে একটি সূত্র ব্যবহার করুন। অর্থাত্ 4'6 এবং 5'2 এর মধ্যে% পার্থক্য কী।

  • উপরের সূত্রের উপর ভিত্তি করে 2 পাঠ্য ভিউয়ের মধ্যে পিক্সেল পার্থক্য গণনা করুন।

  • টেক্সটভিউ ফন্ট-আকারের প্রকৃত আকার (পিক্সেলগুলিতে) পান এবং ডিফল্ট ফন্ট-আকারে পিক্সেল পার্থক্য (আপনি আগে গণনা করেছেন) প্রয়োগ করুন।

এইভাবে আপনি সমস্ত স্ক্রিন আকারে গতিশীল দিক অনুপাত প্রয়োগ করতে পারেন এবং ফলাফল দুর্দান্ত। আপনার প্রতিটি স্ক্রিনে অভিন্ন লেআউট এবং আকার থাকবে।

এটি প্রথমে কিছুটা জটিল হতে পারে তবে আপনি সূত্রটি বের করে নিলে পুরোপুরি লক্ষ্যটি অর্জন করে। এই পদ্ধতিটির সাহায্যে আপনাকে কেবলমাত্র বিভিন্ন স্ক্রিনের আকারের জন্য একাধিক লেআউট তৈরি করতে হবে না।


0

আপনি আপনার বিভিন্ন স্ক্রিন সামঞ্জস্য করতে weightSumএবং layout_weightসম্পত্তি ব্যবহার করতে পারেন ।

তার জন্য, আপনাকে android:layout_width= 0dp করতে হবে এবং android:layout_width= (আপনি যা চান);



-2

আকারগুলি হার্ডকোড করবেন না।

নমনীয়তা বিজ্ঞাপনের জন্য নতুন স্ক্রিন রেজোলিউশনের জন্য - পাঠ্য সজ্জাটি পাওয়ার জন্য ডামি টেক্সটভিউটিকে বিন্যাসে রাখাই সেরা অনুশীলন:

<TextView
        android:id="@+id/dummyTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:text="TextView" />

এবং উদাহরণস্বরূপ আপনার কোডে:

TextView testTextView = (TextView) rootView.findViewById(R.id.dummyTextView);
float textSize = testTextView.getTextSize();

textSizeএমন একটি রেফারেন্স হিসাবে রাখুন যাতে আপনি ধ্রুবক বা পার্সেজেট আকার যুক্ত করতে পারেন (গণনা করে)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.