2

嗨,我是android的新手。我只是想知道是否有任何方法可以更改 android 中字符串的字体大小?

String name = db.getName(Id)
String str = "Name : " + name;

我希望“名称”的字体大小大于“名称”中的值。其中“名称”是我从数据库中获得的值。

请建议任何方法来做到这一点!提前致谢!!

4

9 回答 9

2

采用

TextView textView = (TextView) findViewById(R.id.textView);
Spannable span = new SpannableString(str);
span.setSpan(new RelativeSizeSpan(0.8f), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(span);

在 TextView 上获取不同的 TextSizes。

于 2013-01-25T08:05:46.233 回答
2

当您将文本放入 textView 时,您可以增加字体。例如

textView.setText(yourString);
textView.setTextSize(20);

或者您可以在 Layout.xml 文件本身中给出字体大小

<TextView
      android:id = "@+id/textView"
       ........
       android:textSize = "20dp"/>

如果您需要进一步澄清,请随时提出任何进一步的疑问。

于 2013-01-25T08:06:19.813 回答
1

您不会更改 a 的字体大小,String而是在显示时更改文本的字体大小String(例如,TextView如果您使用的是 a)。A只是一个数据对象,包含您要显示的文本,与您显示它的方式String无关。

于 2013-01-25T08:00:34.157 回答
1

您需要使用 Spannable 并将其提供给您的 TextView 以便仅修改部分文本。要更改大小,请使用:

 span.setSpan(new RelativeSizeSpan(0.8f), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
于 2013-01-25T08:01:24.607 回答
0

您无法更改 a 的字体大小String,因为String它只是一组字符,但您可以使用setTextSize()方法更改TextView包含此字符的 a 的字体大小。希望这可以帮助。String

于 2013-01-25T08:01:02.953 回答
0

你不能。因为你不能用任何其他语言。您需要做的是更改将显示文本的元素的字体大小,而不是字符串本身。

尝试在文件夹中创建布局res/layout/,添加 TextView 元素,然后搜索textSize属性。

于 2013-01-25T08:01:33.183 回答
0

在 ListView 中显示差异的最佳想法是显示标题。此处解释了一个简单的示例它说明了以下代码:

简单活动 Xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ListView
        android:id="@+id/add_journalentry_menuitem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <ListView
        android:id="@+id/list_journal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

列表标题

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/list_header_title"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingTop="2dip"
    android:paddingBottom="2dip"
    android:paddingLeft="5dip"
    style="?android:attr/listSeparatorTextViewStyle" />

项目清单

<?xml version="1.0" encoding="utf-8"?>
<!-- list_item.xml -->
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/list_item_title"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingTop="10dip"
    android:paddingBottom="10dip"
    android:paddingLeft="15dip"
    android:textAppearance="?android:attr/textAppearanceLarge"
    />

主要活动

import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ListSample extends Activity
    {

        public final static String ITEM_TITLE = "title";
        public final static String ITEM_CAPTION = "caption";

        // SectionHeaders
        private final static String[] days = new String[]{"Mon", "Tue", "Wed", "Thur", "Fri"};

        // Section Contents
        private final static String[] notes = new String[]{"Ate Breakfast", "Ran a Marathan ...yah really", "Slept all day"};

        // MENU - ListView
        private ListView addJournalEntryItem;

        // Adapter for ListView Contents
        private SeparatedListAdapter adapter;

        // ListView Contents
        private ListView journalListView;

        public Map<String, ?> createItem(String title, String caption)
            {
                Map<String, String> item = new HashMap<String, String>();
                item.put(ITEM_TITLE, title);
                item.put(ITEM_CAPTION, caption);
                return item;
            }

        @Override
        public void onCreate(Bundle icicle)
            {
                super.onCreate(icicle);

                // Sets the View Layer
                setContentView(R.layout.main);

                // Interactive Tools
                final ArrayAdapter<String> journalEntryAdapter = new ArrayAdapter<String>(this, R.layout.add_journalentry_menuitem, new String[]{"Add Journal Entry"});

                // AddJournalEntryItem
                addJournalEntryItem = (ListView) this.findViewById(R.id.add_journalentry_menuitem);
                addJournalEntryItem.setAdapter(journalEntryAdapter);
                addJournalEntryItem.setOnItemClickListener(new OnItemClickListener()
                    {
                        @Override
                        public void onItemClick(AdapterView<?> parent, View view, int position, long duration)
                            {
                                String item = journalEntryAdapter.getItem(position);
                                Toast.makeText(getApplicationContext(), item, Toast.LENGTH_SHORT).show();
                            }
                    });

                // Create the ListView Adapter
                adapter = new SeparatedListAdapter(this);
                ArrayAdapter<String> listadapter = new ArrayAdapter<String>(this, R.layout.list_item, notes);

                // Add Sections
                for (int i = 0; i < days.length; i++)
                    {
                        adapter.addSection(days[i], listadapter);
                    }

                // Get a reference to the ListView holder
                journalListView = (ListView) this.findViewById(R.id.list_journal);

                // Set the adapter on the ListView holder
                journalListView.setAdapter(adapter);

                // Listen for Click events
                journalListView.setOnItemClickListener(new OnItemClickListener()
                    {
                        @Override
                        public void onItemClick(AdapterView<?> parent, View view, int position, long duration)
                            {
                                String item = (String) adapter.getItem(position);
                                Toast.makeText(getApplicationContext(), item, Toast.LENGTH_SHORT).show();
                            }
                    });
            }

    }

那里还有另外两个 XML,但是通过这些给定的结构,您可以以更好的方式实现您想要的,而不仅仅是大小差异。

PS-完整的应用程序可在此处获得

于 2013-01-25T08:22:48.103 回答
0

Spannable font:为了给文本的某些部分设置不同的字体大小,可以使用RelativeSizeSpan,如下例所示:

Spannable spannable = new SpannableString(firstWord+lastWord); 
spannable.setSpan(new ForegroundColorSpan(firstWordColor), 0, firstWord.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new ForegroundColorSpan(lastWordColor), firstWord.length(), firstWord.length()+lastWord.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
textview.setText( spannable );

信用:从这个网页复制和粘贴。

于 2021-02-09T19:17:40.157 回答
-1

你不能这样做。您可以添加string到视图让我们说EditTextTextView并在 xml 中设置视图的文本大小,如下所示:

android:textSize="18dp"

或以编程方式,您可以这样做:

<YourTextView>.setTextSize(18);

由于之前缺乏想法,我在这里问过类似的问题。我希望你能通过这个链接得到一个想法。

于 2013-01-25T08:01:12.810 回答