এক্সএমএল থেকে মাত্রা পান এবং রানটাইমে পাঠ্য আকার নির্ধারণ করুন


101

Dimens.xML এ, আমার কাছে রয়েছে:

<dimen name="text_medium">18sp</dimen>

রানটাইমের সময়, আমি এই মানটি পাই এবং একটি পাঠ্য দর্শনটির পাঠ্য আকার নির্ধারণ করি:

int size = context.getResources().getDimensionPixelSize(R.dimen.text_medium);
textView.setTextSize(size).

10 ″ ট্যাবলেটে (1280 x 800), সবকিছু ঠিক আছে; তবে একটি ফোনে (800 x 480), পাঠ্য দৃশ্যের খুব বড় ফন্ট রয়েছে। ট্যাবলেটে, আকারটি সমান হয় 18; ফোনে, এটি 27।

যদি আমি ম্যানুয়ালি আকার সেট করে রাখি:

textView.setTextSize(size)

আকার উভয় ডিভাইসে স্বাভাবিক।

উত্তর:


297
<dimen name="text_medium">18sp</dimen>

কোড আকারে সেট করুন:

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.text_medium));

7
আমি ওপি সম্পর্কে জানি না, তবে এই উত্তরটি আমি খুঁজছিলাম। আমি ইনপুট টাইপটি নির্দিষ্ট করার দরকার আউটপুট ধরণের নয় এমন ভেবে আমি COMPLEX_UNIT_DP ব্যবহার করছিলাম।
হেনরিএডামস জুন

যখন আমি আমার ফন্ট সাইজ (ক SP সংজ্ঞায়িত) আমি 60 পেতে প্রাপ্ত যখন আমি এটা OMPLEX_UNIT_PX ফিরে সেট এবং উদ্ধার আবার 70. সবকিছু এখানে স্পষ্ট না মনে হয় পেতে
Gleichmut

2
পাঠ্য আকারের জন্য, আমি কেন TypedValue.COMPLEX_UNIT_SPপরিবর্তে ব্যবহার করতে পারি না ?
দফতর 15

3
@ দফানস Resources.getDimension()পদ্ধতিটি ইতিমধ্যে উপযুক্ত মেট্রিক দ্বারা গুণিত মানটি দেয়
pkuszewski

2
@ পকুসজেউস্কি বাহ, এটি এত বিভ্রান্তিকর।
বড়_চায়ের

4

উভয় পদ্ধতিই ডাইমেনশনপিক্সেলসাইজ () এবং গেটডাইমেনশন () পিক্সেল গণনা করার জন্য স্ক্রিন ঘনত্ব ব্যবহার করে। আপনার ফোনের পর্দার ঘনত্ব স্পষ্টতই hdpi (240dpi) তাই এটি dp কে এসপিতে রূপান্তর করতে 1.5 স্কেল ব্যবহার করে। সাধারণ গণিত 18 * 1.5 = 27।

দেখে মনে হচ্ছে আপনার ট্যাবলেটের ঘনত্ব এমডিপিআই (160 ডিপিআই) তাই স্কেলটি কেবল 1: 1।

তবে আপনি যদি উভয় পাঠ্যের আসল আকারের তুলনা করেন তবে এটি একই হওয়া উচিত।

সবচেয়ে ভাল উপায় হ'ল দুটি ডাইমেনসএক্সএমএল ফাইল তৈরি করুন একটি ফোনের জন্য মান ফোল্ডারে এবং অন্যটি ট্যাবলেটগুলির জন্য মান-sw600dp এ (আপনি ল্যান্ডস্কেপ ওরিয়েন্টেশনে 10 ইঞ্চি ট্যাবলেটের জন্য মাত্রাগুলি সঞ্চয় করতে মান-sw720dp-land ফোল্ডারটিও ব্যবহার করতে পারেন)।

: আপনি সাইটে Android মধ্যে মাত্রা সম্বন্ধে আরও পড়তে পারে http://android4beginners.com/2013/07/appendix-c-everything-about-sizes-and-dimensions-in-android/


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