2010-07-25 22 views
5

मैं अपने स्पिनर के फ़ॉन्ट आकार को कैसे कम कर सकता हूं? मैंने स्पिनर आकार को 35 पिक्स तक घटा दिया है, जिसके कारण मेरा टेक्स्ट आधे में कट जाता है।स्पिनर का टेक्स्ट साइज

मैं यह कैसे कर सकता हूं? इसके अलावा मैं कुछ भी पहले से नहीं चुना जाना चाहता हूँ।

डिफ़ॉल्ट पाठ "select some value" होना चाहिए। कुछ परीक्षणों के बाद

+0

मुझे स्पिनर के बारे में बहुत कुछ पता नहीं है, लेकिन अगर मुझे अच्छी तरह से याद है, तो यह तत्वों को प्रदर्शित करने के लिए एक ArrayAdapter का उपयोग करता है। मुझे लगता है कि आप इसे उपclass कर सकते हैं, और getView ओवरराइड? यह सिर्फ एक विचार है, मैंने इसका परीक्षण नहीं किया है। मुझे इसमें जाना होगा। – Sephy

उत्तर

22

, ArrayAdapter subclassing से एक आसान तरीका है। इस लाइन के लिए

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array,android.R.layout.simple_spinner_item);//this is from the tutorial, adapt with your line 

बदलें:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.textview); 

तुम बस TextView आप स्पिनर का उपयोग करने के डिजाइन बदलना होगा। मैं तो बस इस के साथ की कोशिश की, textview.xml के लेआउट के रूप में:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:text="@+id/TextView01" android:id="@+id/TextView01" 
android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp"></TextView> 
10

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array,android.R.layout.simple_spinner_item); 

बदलने ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.textview);

के लिए एक ही आइटम जो स्पिनर पर डिफ़ॉल्ट रूप से दिखाई दे रहा है बदल जाएगा। , R.layout.spinner_item R.layout.spinner_dropdown_item

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.spinner_item); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 

: हम स्पिनर में सभी वस्तुओं पर लागू करने के लिए एक ही शैली की जरूरत है, हम बदलने के लिए

adapter.setDropDownViewResource(android.R.layout.simple_spinner_item) to 


adapter.setDropDownViewResource(R.layout.textview); 
4

2 एक्सएमएल परिभाषित की जरूरत है spinner_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="?android:attr/spinnerItemStyle" 
    android:singleLine="true" 
    android:ellipsize="marquee" 
    android:textSize="18sp" > 
</TextView> 

spinner_dropdown_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:ellipsize="marquee" 
    android:textSize="18sp" /> 

-------------------------------- अद्यतन --------------- -----------------------

बाकी कोड:

final ActionBar actionBar = getActivity().getActionBar(); 
RelativeLayout relative = new RelativeLayout(getActivity()); 
Spinner spinner = new Spinner(getActivity()); 
spinner.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); 

relative.addView(spinner); 
actionBar.setDisplayShowCustomEnabled(true); 
actionBar.setCustomView(relative); 

// Set adapter and listener 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.spinner_item); 
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 
+1

एक बार इन 2 एक्सएमएल फाइलों को परिभाषित करने के बाद, वे शेष कोड में कैसे शामिल होते हैं? – Rich

0

स्थापना android:scaleX और anrdoid:scaleY बदलने के लिए एक आसान तरीका की तरह लगता है स्पिनर फ़ॉन्ट आकार।

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