如何更改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);
}
}
答案 0 :(得分:57)
进入布局创建一个名为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);
答案 1 :(得分:27)
有两种方法:
simple_list_item_1.xml
,修改后再使用它代替android.R.layout.simple_list_item_1
; BaseAdapter
并修改getView(..)
来电中的字体大小。我建议你选择后者。
答案 2 :(得分:6)
请创建另一个名为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">
答案 3 :(得分:0)
快速回答是,您只能使用自己的布局而不是android.R.layout.simple_list_item来更改文本大小。通过这样做,您可以更改TextView属性,如文本大小。但是,如果您没有使用具有自己布局的列表,则第一次使用它们会显得有些复杂。我将尝试回来编辑此答案,以便稍后提供更多信息,但我建议您查看自定义列表视图的教程 - 这将向您展示如何inflate
您自己的布局文件。
答案 4 :(得分:0)
为应该在列表行中的Text创建另一个xml文件..
只需在TextView中添加android:layout_height =“?android:attr / listPreferredItemHeight”:D(将其置于相对布局而不是线性布局)
然后将以前的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
答案 5 :(得分:-1)
您可以在sharedprefs中保存字体大小,然后重新创建适配器
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));