如何将不同的字体样式应用于微调器中的不同项目? [英] How to apply different font styles to difeerent items in the spinner?

查看:240
本文介绍了如何将不同的字体样式应用于微调器中的不同项目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我有一个微调星期一,星期一,星期二,星期四,星期五,星期六。我想显示每个项目在不同的字体style.ie星期天Times New Roman字体,星期二Calibri字体星期三在Arialic Hollow这样的字体。我正在采取这些字体在资产中创建的字体文件夹。请帮助我如何做到这一点。



我的主要活动是

$ p $ import android.app.Activity;
导入android.os.Bundle;
导入android.widget.ArrayAdapter;
导入android.widget.Spinner;
public class AndroidCustomSpinner extends Activity {

String [] DayOfWeek = {Sunday,Monday,Tuesday,
Wednesday,Thursday,Friday ,星期六};

@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

微调mySpinner =(微调)findViewById(R.id.spinner);
ArrayAdapter< String> adapter = new ArrayAdapter< String>(this,
R.layout.row,R.id.weekofday,DayOfWeek);
mySpinner.setAdapter(adapter);


$ b $ / code $ / $ p

我的row.xml是 p>

 <?xml version =1.0encoding =utf-8?> 
< LinearLayout
xmlns:android =http://schemas.android.com/apk/res/android
android:layout_width =fill_parent
android:layout_height =wrap_content
android:orientation =horizo​​ntal>
android:id =@ + id / icon
android:layout_width =wrap_content
android:layout_height =wrap_content
android: src =@ drawable / ic_launcher/>
< TextView
android:id =@ + id / weekofday
android:layout_width =wrap_content
android:layout_height =wrap_content/>
< / LinearLayout>

和我的main.xml是

 <?xml version =1.0encoding =utf-8?> 
< LinearLayout
xmlns:android =http://schemas.android.com/apk/res/android
android:orientation =vertical
android:layout_width =fill_parent
android:layout_height =fill_parent>
< TextView
android:layout_width =fill_parent
android:layout_height =wrap_content
android:text =Spinner/>
< Spinner
android:id =@ + id / spinner
android:layout_width =fill_parent
android:layout_height =wrap_content/>
< / LinearLayout>


解决方案

在AdapterArray中,

  public View getCustomView(int position,View convertView,ViewGroup parent)
{
//膨胀视图
查看行= inflater.inflate(R.layout.spinner_rows,parent,false);
TextView dayView =(TextView)row.findViewById(R.id.dayView); //查看你在哪里显示天数
if(position == 1)//如果1是星期天
{
Typeface face = Typeface.createFromAsset(getAssets(),fonts / TimesNewRoman.ttf);
dayView.setTypeface(face);

if(position == 2)// if 1 is for monday
{
Typeface faceface = Typeface.createFromAsset(getAssets(),fonts / someotherFont.ttf );
dayView.setTypeface(face);

}
返回行;



$ b您可以制作日期和格式的数组并在函数中迭代它们而不是if else语句


In my app,I have a spinner which displays Sunday, Monday,Tuesday,Thursday,Friday,Saturday.I want to display each item in different font style.i.e Sunday in Times New Roman font,Tuesday in Calibri font,Wednesday in Arialic Hollow font like that.I am taking those fonts in fonts folder created in assets.Please help me how to do it.

My main activity is

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
 public class AndroidCustomSpinner extends Activity{

    String[] DayOfWeek = {"Sunday", "Monday", "Tuesday", 
            "Wednesday", "Thursday", "Friday", "Saturday"};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
                R.layout.row, R.id.weekofday, DayOfWeek);
        mySpinner.setAdapter(adapter); 
    }

}

my row.xml is

<?xml version="1.0" encoding="utf-8" ?> 
 <LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal">
<ImageView 
  android:id="@+id/icon" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:src="@drawable/ic_launcher" /> 
<TextView 
  android:id="@+id/weekofday" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" /> 
 </LinearLayout>

and my main.xml is

 <?xml version="1.0" encoding="utf-8" ?> 
 <LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android" 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent">
 <TextView 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:text="Spinner" /> 
 <Spinner 
  android:id="@+id/spinner" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" /> 
 </LinearLayout>

解决方案

In the AdapterArray use this to format

public View getCustomView(int position, View convertView, ViewGroup parent) 
{
    //inflate the view
    View row = inflater.inflate(R.layout.spinner_rows, parent, false);
    TextView dayView=(TextView)row.findViewById(R.id.dayView);//view where you show days
    if(position==1)//if 1 is for sunday
    {
        Typeface face=Typeface.createFromAsset(getAssets(), "fonts/TimesNewRoman.ttf"); 
        dayView.setTypeface(face); 
    }
    else if(position==2)//if 1 is for monday
    {
        Typeface face=Typeface.createFromAsset(getAssets(), "fonts/someotherFont.ttf"); 
        dayView.setTypeface(face); 

    }
   return row;
}

You could make Array of the Days and formats and iterate through them in the function instead of if else statement

这篇关于如何将不同的字体样式应用于微调器中的不同项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆