Изменить размер шрифта в ListView - Android / Eclipse - PullRequest
21 голосов
/ 17 марта 2010

Как я могу изменить размер шрифта в элементе 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);
    }

}

Ответы [ 6 ]

57 голосов
/ 24 октября 2011

Зайдите в макет и создайте новый 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);
27 голосов
/ 17 марта 2010

2 пути:

  1. Скопируйте simple_list_item_1.xml из источников Android, измените его и затем используйте вместо android.R.layout.simple_list_item_1;
  2. Используйте BaseAdapter и измените размер шрифта в getView(..) call.

Я бы посоветовал вам пойти с последним.

6 голосов
/ 22 июня 2012

Пожалуйста, создайте другой файл с именем 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">

0 голосов
/ 09 ноября 2015

вы можете сохранить размер шрифта в 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));
0 голосов
/ 13 апреля 2011

Создайте еще один 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

0 голосов
/ 17 марта 2010

Быстрый ответ заключается в том, что вы можете изменить размер текста только с помощью собственного макета, а не android.R.layout.simple_list_item. Сделав это, вы можете изменить свойства TextView, такие как размер текста. Однако, если вы не работали со списками со своими собственными макетами, они могут показаться немного сложными для использования в первый раз. Я постараюсь вернуться и отредактировать этот ответ, чтобы позже предоставить больше информации, но я предлагаю вам поискать учебники по настраиваемым представлениям списков, которые покажут вам, как inflate ваши собственные файлы макетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...