如何将不同的字体样式应用于微调器中的不同项目? [英] How to apply different font styles to difeerent items in the spinner?
问题描述
我的主要活动是
$ 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 =horizontal>
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屋!