2012-07-20 9 views
11

मेरे पास एक टेक्स्ट व्यू है जहां मैं लाइन स्पेसिंग 1.0 से कम होना चाहता हूं, यानी लाइनों के बीच की डिफ़ॉल्ट मात्रा से कम होगा।टेक्स्ट व्यू लाइनस्पेसिंग मल्टीप्लायर शून्य चॉप से ​​कम पिछली पंक्ति

<TextView 
    android:id="@+id/text_header" 
    android:layout_width="@dimen/text_header_width" 
    android:layout_height="wrap_content" 
    android:text="@string/header_text" 
    android:textSize="@dimen/text_header_text_size" 
    android:typeface="helvetica" 
    android:lineSpacingMultiplier="0.95" /> 

लेकिन लब्बोलुआब यह है पर पाठ में, descenders (जैसे y के, जी, और पी के) थोड़ा काटा जा रहा है: मैं इस किया है। दूसरे शब्दों में, उन अक्षरों के निचले हिस्से के लगभग 2 या 3 पिक्सेल मूल्य हैं।

मैंने बिना सफलता के मार्जिन और पैडिंग के साथ खेलने का प्रयास किया है। मैं wrap_content की बजाय निर्दिष्ट ऊंचाई (थोड़ा अतिरिक्त कमरा के साथ) का उपयोग कर समस्या को ठीक करने में सक्षम हूं, लेकिन यदि संभव हो तो मैं इससे बचना चाहूंगा।

उत्तर

-2

अपने कोड उपयोग से इस

प्रयास करें textView.setLineSpacing()

या

अपने xml से android:lineSpacingExtra="xxdp"

+0

यह काम कर सकता है। बिल्कुल वही नहीं जो मैं चाहता हूं, हालांकि - मैं चाहता हूं कि अंतर को फ़ॉन्ट आकार के प्रतिशत के रूप में स्केल करना पड़े, न कि डीपी मान के रूप में। मै उसे करने की एक कोशिश तो करूंगा। – parkerfath

+0

यह अपेक्षित के रूप में काम नहीं करता है, क्योंकि यह मौजूदा लाइन स्पेस के ऊपर एक अतिरिक्त रिक्ति जोड़ता है, और यदि कोई 1 के गुणक और नकारात्मक अतिरिक्त मान का उपयोग करता है, तो पाठ पहले की तरह कट ऑफ है ... –

0

का उपयोग अपने परीक्षण यह एपीआई 21. मैं नीचे Android संस्करण के साथ एक समस्या की तरह लग रहा से इसे हल किया गया:

मेरे मामले में मैंका उपयोग करता हूंजिसमें अंत में ellipsize के साथ अधिकतम 2 लाइनें हैं। एपीआई 21 के लिए और (values-v21/style.xml)

<style name="MyTextViewStyle" parent="Base.TextAppearance.AppCompat"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:gravity">left</item> 
    <item name="android:textColor">@color/blue_dark</item> 
    <item name="android:textSize">16sp</item> 
    <item name="android:maxLines">2</item> 
    <item name="android:ellipsize">end</item> 
    <item name="android:lineSpacingExtra">-4dp</item> 
    <item name="android:paddingTop">0dp</item> 
    <item name="android:paddingBottom">0dp</item> 
    <item name="android:includeFontPadding">true</item> 
</style> 

यहाँ गुप्त के बाद मेरे TextView के लिए मेरे TextView के लिए

शैली से पहले एपीआई 21 (values/style.xml)

<style name="MyTextViewStyle" parent="Base.TextAppearance.AppCompat"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:gravity">left</item> 
    <item name="android:textColor">@color/blue_dark</item> 
    <item name="android:textSize">16sp</item> 
    <item name="android:maxLines">2</item> 
    <item name="android:ellipsize">end</item> 
    <item name="android:lineSpacingExtra">-4dp</item> 
    <item name="android:paddingTop">0dp</item> 
    <item name="android:paddingBottom">4dp</item> 
    <item name="android:includeFontPadding">false</item> 
</style> 

शैली मुख्य रूप से android:paddingBottom है विपरीत है कि एपीआई 21 से पहले android:lineSpacingExtra का। मेरे डिवाइस पर यह नीचे की तरफ कटा हुआ अंतिम लाइन की बग को ठीक करता है।

नोट: <item name="android:lineSpacingExtra">-4dp</item> ऐसा लगता है कि यह <item name="android:lineSpacingMultiplier">0.8</item> के बराबर है।

संबंधित मुद्दे