如何在android中设置微调器内的字体

时间:2012-07-28 11:45:08

标签: android spinner

I want to show the custom font In my Application. I want to show the custom font inside the spinner. For that I have used the custom adapter for creating the spinner. 

I am getting the output that I want when spinner opens And I am getting the custom fonts. But when spinner close that time word is not readable font is not setting.

Image1: Inside the spinner the word is not readable.![enter image description here][1]  


Image2: when spinner open the word is readable:
![enter image description here][2]

I have used the 
**Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/kalpurush.ttf");**

**textViewlistview.setTypeface(tf);**

But how should I set the font inside the spinner. when settext inside the spinner.


  [1]: http://i.stack.imgur.com/i02XA.png
  [2]: http://i.stack.imgur.com/Vkydk.png

以下是我使用微调器的适配器

private class CustomAdapterSpinner extends ArrayAdapter
    {
        public CustomAdapterSpinner() {
            //super(context, android.R.layout.simple_spinner_item, objects);
            super(CustomizeFontsAndroid.this, R.layout.simple_spinner1,R.id.textviewSpinner,strarraySpinner);
            // TODO Auto-generated constructor stub
            tf1=Typeface.createFromAsset(CustomizeFontsAndroid.this.getAssets(), "fonts/kalpurush.ttf");
        }

        @Override
        public View getDropDownView(int position, View convertView,
                ViewGroup parent) {

            View view = super.getView(position, convertView, parent);

            TextView textviewSpinner = (TextView)view.findViewById(R.id.textviewSpinner);
            textviewSpinner.setTypeface(tf1);
            textviewSpinner.setCompoundDrawables(null, null, null, null);
            textviewSpinner.setTextSize(16);
            textviewSpinner.setText(strarraySpinner[position].toString()+"\n");
            //textviewSpinner.setText(R.string.bangla);

            return view;
        }
  }//end of the Spinner Adapter

1 个答案:

答案 0 :(得分:0)

您需要使用适配器为微调器创建视图。即使适配器创建的视图只是TextView。这样做可以让您致电setTypeface()上的TextView

我已阅读您的评论,但您需要使用getView()的{​​{1}}方法执行此操作。确保您的Adapter实施AdapterSpinnerAdapter有两种返回视图的方法,SpinnerAdaptergetView()

getDropDownView()返回用于显示目的的视图,即未显示微调器的弹出窗口(未使用正确字体的弹出窗口)。

getView()返回微调器项目列表中使用的视图。

查看SpinnerAdapter here的参考资料。