2013-04-02 21 views
8

की शैली विशेषता कैसे प्राप्त करें मैं एक कस्टम टेक्स्ट व्यू क्लास MTextView बना रहा हूं। कन्स्ट्रक्टर के अंदर मैं टेक्स्टव्यू के स्टाइल अट्रिब के मूल्य को जानना चाहता हूं ताकि स्टाइल को बोल्ड पर सेट किया गया हो या नहीं, इस पर निर्भर करता है कि मैं अलग-अलग टाइपफेस सेट कर सकता हूं। लेकिन कोई getStyle() फ़ंक्शन नहीं है? क्या करें?टेक्स्ट व्यू

public class MTextView extends TextView{ 

    public MTextView(Context context, AttributeSet attrs, int defStyle) { 
      super(context, attrs, defStyle); 
      if(style.equals(TypeFace.bold)) //how to get style? 
       setTypeface(Typeface.createFromAsset(getContext().getAssets(),"rc.ttf")); 
    } 



    } 

उत्तर

25

आप TextView के getTypeface() उदाहरण विधि से पाठ-शैली मिल सकती है।

int style = getTypeface().getStyle(); 

कोई textstyle निर्दिष्ट किया गया है (अर्थात, आप सामान्य पाठ-शैली का समर्थन करना चाहते हैं) तो getTypeface() अशक्त लौट सकते हैं।

जहां यह शून्य नहीं है, तो टेक्स्ट को मानना ​​सबसे अच्छा हो सकता है स्टाइल सामान्य रूप से सामान्य पर सेट है। इस कोड को

+0

एक जवाब के रूप में यह निशान। –

+0

लड़का स्पष्ट रूप से स्टाइल प्राप्त करना चाहता है लेकिन डिफ़ॉल्ट टाइपफ़ेस से नहीं, क्योंकि वह इसे ttf फ़ाइल से बनाता है। उत्तर के रूप में चिह्नित नहीं किया जाना चाहिए ... – Borzh

+0

यह किसी भी आश्चर्यजनक – Till

1

उपयोग:

if (attrs != null) { 
     try { 
      int style = attrs.getAttributeIntValue(
       "http://schemas.android.com/apk/res/android", 
       "textStyle", 
       Typeface.NORMAL); 

      setTypeface(Typeface.createFromAsset(
          getContext().getAssets(), 
          "rc.ttf"), 
         style); 
     } 
     catch (Exception e) { 
      Log.e(TAG, e.getMessage()); 
     } 
    } 
संबंधित मुद्दे