Подтвердить что ты не робот

Изменить размер шрифта в 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);
    }

}
4b9b3361

Ответ 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));