2012-01-25 14 views
8

मैं एक TextView कि दो वाक्य होता है प्रदर्शित करने के लिए tyring रहा हूँ और मैं इस तरह से उन्हें एक के बाद एक होना चाहते हैं:एंड्रॉयड - दो वाक्यों, दो शैलियों, एक TextView

AAAAAA: BBBBBBBBBBBBBBBBBBBBBBB 
BBBBBBBBB 

जहां एक ... है वाक्य और बी का पहला शब्द \ भाग ... दूसरा वाक्य है।

ए के आकार ... & बी ... स्थिर नहीं है।

ऐसा करने की कोशिश की:

<RelativeLayout 
     style="@style/f13" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 
     <TextView 
      android:id="@+id/first_text" 
      android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="AAAAAA: " />  
    <TextView 
      style="@style/f15" 
      android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" 
     android:layout_toRightOf="@id/first_text" />     
    </RelativeLayout> 

लेकिन मैं मिल गया:

AAAAAA: BBBBBBBBBBBBBBBBBBBBBBB 
     BBBBBBBBB 

और मैं पहला वाक्य नीचे जारी रखने के लिए दूसरा (बी ...) की सजा चाहते हैं (ए ...) मुझे उस वाक्य को जोड़ना चाहिए ... & बी ... अलग शैलियों हैं।

एक के लिए शैली:

<style 
    name="f13"> 
    <item name="android:typeface">sans</item> 
    <item name="android:textSize">15dp</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:textColor">@color/grey_dark_emperor</item> 
</style> 

बी के लिए शैली:

<style 
    name="f15"> 
    <item name="android:typeface">sans</item> 
    <item name="android:textSize">17dp</item> 
    <item name="android:textStyle">normal</item> 
    <item name="android:textColor">@color/grey_dark_emperor</item> 
</style> 

किसी भी विचार?

+1

क्या आप किसी कारण से 2 टेक्स्टव्यू का उपयोग कर रहे हैं? मुझे लगता है कि इसे आसानी से एक टेक्स्ट व्यू के साथ किया जा सकता है। इस तरह रैपिंग स्वचालित रूप से जिस तरीके से आप चाहते हैं उसे किया जाएगा। –

+2

[एक टेक्स्टव्यू में स्पैनबलस्ट्रिंग] का उपयोग करने पर एक नज़र डालें [http://www.chrisumbel.com/article/android_textview_rich_text_spannablestring) –

+0

आपने कहा कि ए और बी का आकार स्थिर नहीं है .. इसका मतलब है कि मान गतिशील आरटी है? –

उत्तर

15

प्रदर्शित करने के लिए कर सकता है आप इस प्रकार SpannableStringBuilder इस्तेमाल करने की कोशिश कर सकते हैं:

String firstString = "AAAAAA: "; 
String secondString = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"; 

SpannableStringBuilder stringBuilder = new SpannableStringBuilder(firstString + secondString); 
stringBuilder.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, firstString.length(), 
      Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
stringBuilder.setSpan(new ForegroundColorSpan(Color.rgb(255, 0, 0)), firstString.length() + 1, 
      firstString.length() + secondString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
textView.setText(stringBuilder); 

यह पहला वाक्य बोल्ड होने के लिए कर देगा, और दूसरा एक लाल रंग में।

+0

क्या मैं शैलियों के लिए समर्थन जोड़ सकता हूं? मैं उस वाक्य ए ... और बी का उल्लेख करने में असफल रहा ... विभिन्न शैलियों – senior

+2

हां, आप [TextAppearanceSpan] (http://developer.android.com/reference/android/text/style/TextAppearanceSpan.html) का उपयोग कर सकते हैं पाठ रंग, आकार, शैली, और टाइपफेस सेट करने के लिए setpan फ़ंक्शन के पैरामीटर के रूप में। – lexmiir

+0

काम प्रीफेक्ट धन्यवाद! – senior

2

आप एक पाठ पाठ के साथ वांछित प्रभाव प्राप्त करने के लिए HTML टैग का उपयोग कर सकते हैं। this और this और this देखें।

+0

मैं प्रत्येक वाक्य के लिए अलग-अलग शैलियों को जोड़ना चाहता हूं इसलिए मुझे लेआउट शैलियों के लिए समर्थन की आवश्यकता है – senior

+0

क्या आपने उल्लेख किया था कि कॉमन्सवेयर ब्लॉग में टैग की जांच की थी। आपके इच्छित पाठ की शैली को बदलने के लिए कई पैरा हैं। क्या आप > प्रत्येक वाक्य के लिए और अपनी समस्या हल नहीं कर सकते हैं? .. यदि आप अभी भी समस्या का सामना कर रहे हैं तो नहीं एचटीएमएल टैग – manjusg

+0

के साथ आपने जो भी प्रयास किया है उसे पोस्ट करने में संकोच न करें, लेकिन लेक्समीर का जवाब स्पॉट – senior

1

आप HTML का उपयोग अपने पाठ

myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>")); 
+0

पर सही था, मैं प्रत्येक वाक्य के लिए अलग-अलग शैलियों को जोड़ना चाहता हूं इसलिए मुझे लेआउट शैलियों के लिए समर्थन की आवश्यकता है – senior

0
<RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 
    <TextView 
      android:id="@+id/first_text" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="AAAAAA: BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" />     
</RelativeLayout> 

इसे xml के रूप में उपयोग करें।

+0

जैसा कि मैंने ए का उल्लेख किया है ... और बी ... स्थिर नहीं हैं और – senior

+0

भिन्न हैं फिर आप प्रोग्राम को व्यवस्थित रूप से सेट कर सकते हैं। – Hiral

+0

और विभिन्न शैलियों .... – senior

0

केवल एक टेक्स्टव्यू यूइंग करके आप इसे करने में सक्षम होंगे। आपको केवल एक सिंगल टेक्स्टव्यू में दो स्ट्रिंग जोड़ना होगा।

textview.setText(first_text+":"+second_text); 
+0

मैं प्रत्येक वाक्य के लिए अलग-अलग शैलियों को जोड़ना चाहता हूं इसलिए मुझे लेआउट शैलियों के लिए समर्थन चाहिए – senior

-1

आपने पहले पाठ के अधिकार के रूप में दूसरे पाठ की स्थिति लिखी है।

android:layout_toRightOf="@id/first_text" 

तो मेरी जानकारी के अनुसार यह संभव नहीं पहले sentence.it नीचे जारी रखने के लिए हमेशा ही पहले पाठ के सही पक्ष में दूसरे पाठ लिख रहा है है।

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