विभिन्न स्क्रीन रिज़ॉल्यूशन और विभिन्न घनत्वों की समस्याओं से बचने के लिए, मैं स्क्रीन की प्रतिशत चौड़ाई और ऊंचाई के आधार पर सब कुछ आकार और स्थिति देता हूं। यदि पाठ को स्क्रीन की प्रतिशत चौड़ाई या ऊँचाई के आधार पर आकार दिया जाता है, तो फ़ॉन्ट सभी उपकरणों और सभी प्रस्तावों पर सही आकार होगा। अपने स्थान की चौड़ाई और ऊंचाई के आधार पर सही फ़ॉन्ट आकार प्राप्त करने के लिए, बस इस फ़ंक्शन का उपयोग करें:
private float SetTextSize(String text, int width, int height)
{
Paint paint = new Paint();
float textWidth = paint.measureText(text);
float textSize = (int) ((width / textWidth) * paint.getTextSize());
paint.setTextSize(textSize);
textWidth = paint.measureText(text);
textSize = (int) ((width / textWidth) * paint.getTextSize());
paint.setTextSize(textSize);
FontMetricsInt metrics = paint.getFontMetricsInt();
float textHeight = metrics.descent - metrics.ascent;
if (textHeight > height)
{
textSize = (int) (textSize * (height / textHeight));
paint.setTextSize(textSize);
}
return textSize;
}
स्क्रीन की चौड़ाई और ऊंचाई प्राप्त करने के लिए यह कोड है:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
{
Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
screenWidth = size.x;
screenHeight = size.y;
}
else
{
Display display = getWindowManager().getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();
}
इच्छित फ़ॉन्ट आकार प्राप्त करने के लिए, बस स्क्रीन की चौड़ाई और स्क्रीन की ऊँचाई के आधार पर एक क्षेत्र बनाएं और इसे तब तक ट्विक करें जब तक कि फ़ॉन्ट आकार सही न दिखे। एक बार जब आप इसे सही देखना चाहते हैं, तो इसे सभी उपकरणों पर सही दिखना चाहिए।
float textSize = SetTextSize("text", (int) (screenWidth * 0.1), (int) (screenHeight * 0.15))
मैं आशा करता हूं कि इससे तुम्हें सहायता मिलेगी