এই উত্তরের জন্য কিছু অতিরিক্ত স্বাদ যুক্ত করা, পাশাপাশি কিছুটা বিভ্রান্তির মধ্যে পড়ে। আপনি উচিত কোন একটির এই পরীক্ষাটি ড্রপ পাবে @RunWith(AndroidJUnit4.class)
আপনি আপনার প্রকল্পে আছে (আপনি আপনার dimens.xml করার dimens যোগ করতে হবে) পরীক্ষা।
দ্রষ্টব্য: এই সমস্ত পরীক্ষা পাস
@Test public void testScaledFontSizes() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
final Context context = InstrumentationRegistry.getTargetContext();
Configuration configuration = context.getResources().getConfiguration();
configuration.fontScale = 2.0f;
configuration.densityDpi = 160; // mdpi, 1:1
context.getResources().updateConfiguration(configuration, null);
float scaledTextSize = context.getResources().getDimensionPixelSize(R.dimen.sp_15);
assertEquals(30.0f, scaledTextSize);
// Create a new TextView with the explicitly set configuration
TextView textView = new TextView(context);
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, scaledTextSize);
// 30, because font size is scaled
assertEquals(30.0f, textView.getTextSize());
// This is what we *don't* want, it's scaled *twice*!
textView.setTextSize(scaledTextSize);
assertEquals(60.0f, textView.getTextSize());
// DP instead of SP tests
float fifteenDp = context.getResources().getDimensionPixelSize(R.dimen.dp_15);
assertEquals(15.0f, fifteenDp);
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, fifteenDp);
// Still 15, because it's DP, not SP
assertEquals(15.0f, fifteenDp);
textView.setTextSize(fifteenDp);
// 30, because setTextSize DOES font scaling
assertEquals(30.0f, textView.getTextSize());
}
}
আমি যে বড় গ্রহণযোগ্যতা পেয়েছি তা হ'ল TextView.setTextSize(float)
এটি ফন্ট স্কেলিং প্রয়োগ করে , সুতরাং আপনি যদি ডিপির পরিবর্তে এসপি হিসাবে ইতিমধ্যে লেবেলযুক্ত কোনও মাত্রায় পাস করেন তবে এটি ফন্ট স্কেলিংটি দুইবার গ্রহণ করবে ।