Изменить размер шрифта в 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);
}
}
Ответы
Ответ 1
2 способа пойти:
- Скопируйте
simple_list_item_1.xml
из Android-источников, измените его, а затем используйте вместо android.R.layout.simple_list_item_1
;
- Используйте
BaseAdapter
и измените размер шрифта в getView(..)
.
Я предлагаю вам пойти с последним.
Ответ 2
Перейдите в макет, создайте новый xml файл с именем mylist.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);
Ответ 3
Создайте еще один файл с именем 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">
Ответ 4
Быстрый ответ заключается в том, что вы можете изменять размер текста только с помощью собственного макета, а не из файла android.R.layout.simple_list_item. Делая это, вы можете изменить свойства TextView, такие как размер текста. Однако, если вы не работали со списками со своими макетами, они могут оказаться несколько сложными для использования в первый раз. Я попытаюсь вернуться и отредактировать этот ответ, чтобы предоставить дополнительную информацию позже, но я предлагаю вам изучить учебники по пользовательским спискам представлений - это покажет вам, как inflate
ваши собственные файлы макета.
Ответ 5
Создайте еще один XML файл для текста, который должен находиться в строках списка.
и просто добавьте android: layout_height = "? android: attr/listPreferredItemHeight" в TextView: D (поместите его в относительный формат, а не в линейный макет)
а затем используйте предыдущий xml ListView для setContentView (R.layout.listview)
а другой xml файл в коде ArrayAdapter
Адаптер ArrayAdapter = новый ArrayAdapter (это, R.layout.yoursecondLayoutforthelistswithText, R.id.titles, HistoryList)
R.id.titles - это идентификатор для TextView
Ответ 6
Esa es la mejor respuesta. Excelente
Грэкиас
Ответ 7
вы можете сохранить размер шрифта в 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));