it-roy-ru.com

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

}
21
Soren

2 пути:

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

Я бы предложил тебе пойти с последним.

27
yanchenko

Зайдите в макет и создайте новый 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);
57
Shereef Marzouk

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

6
Zou

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

0
Steve Haley

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