更改ListView中的字体大小 – Android / Eclipse

我如何更改ListView元素中的字体大小? 在我的main.xml文件中,我尝试了android:textSize(pt,px,sp,dp)中的几个不同的值,但似乎没有任何改变。

这是我目前在我的main.xml中的:

<ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list" android:textColor="#ffffff" android:background="#000080" android:layout_width="fill_parent" android:layout_height="wrap_content" android:clickable="true" android:dividerHeight="1px" android:layout_marginTop="5px" android:textSize="8px"/> 

这是我的Java:

 package com.SorenWinslow.TriumphHistory; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public class TriumphHistory extends ListActivity { String[] HistoryList; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayAdapter<String> adapter; HistoryList = getResources().getStringArray(R.array.history); adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,HistoryList); setListAdapter(adapter); } } 

Related of "更改ListView中的字体大小 – Android / Eclipse"

2种方式去:

  1. 从Android来源复制simple_list_item_1.xml ,修改它,然后使用它来代替android.R.layout.simple_list_item_1 ;
  2. 使用BaseAdapter并在getView(..)调用中修改字体大小。

我build议你去后者。

进入布局创build一个名为mylist.xml的新XML文件

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:paddingTop="2dip" android:paddingBottom="3dip" android:layout_width="fill_parent" android:layout_height="wrap_content" /> 

现在在代码中

  adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,HistoryList); 

改变它

  adapter = new ArrayAdapter<String> (this,R.layout.mylist,HistoryList); 

请创build另一个名为list_item.xml的文件

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="6dp" android:textSize="21sp"> 

快速的答案是,你只能通过使用你自己的布局而不是android.R.layout.simple_list_item来改变文本大小。 通过这样做,您可以更改TextView属性,如文本大小。 但是,如果您没有使用自己的布局来处理列表,那么第一次使用它们可能会显得有些复杂。 我会试着回来编辑这个答案,以后再提供更多的信息,但是我build议你在自定义列表视图上寻找教程 – 这将告诉你如何inflate自己的布局文件。

为应该在列表行中的文本创build另一个xml文件..

并在你的TextView:D中添加android:layout_height =“?android:attr / listPreferredItemHeight”(把它放在一个相对的布局而不是线性布局)

然后使用您之前的ListView xml作为setContentView(R.layout.listview)

和ArrayAdapter代码中的其他xml文件

ArrayAdapter adapter = new ArrayAdapter(this,R.layout.yoursecondLayoutforthelistswithText,R.id.titles,HistoryList)

R.id.titles是TextView的id

您可以将字体大小保存在sharedprefs中,然后重新创build适配器

  SharedPreferences.Editor ed = mSharedPreferences.edit(); ed.putFloat("fontTwosize", sizeTwo); ed.commit(); adapterz = new LazyziyaratAdapter(MainActivity.this, ziyaratList); listz.setAdapter(adapterz); 

并在你的getview方法的适配器

  holder.text.setTextSize(TypedValue.COMPLEX_UNIT_SP,G.mSharedPreferences.getFloat("fontTwosize", 25));