[英]Change Font size programmatically in Android
嗨,我是android的新手。 我只是想知道是否有任何方法可以更改 android 中字符串的字體大小?
String name = db.getName(Id)
String str = "Name : " + name;
我希望“名稱”的字體大小大於“名稱”中的值。其中“名稱”是我從數據庫中獲得的值。
請建議任何方法來做到這一點!! 提前致謝!!
采用
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。
當您將文本放入 textView 時,您可以增加字體。 例如
textView.setText(yourString);
textView.setTextSize(20);
或者您可以在 Layout.xml 文件本身中指定字體大小
<TextView
android:id = "@+id/textView"
........
android:textSize = "20dp"/>
如果您需要進一步澄清,請隨時提出任何進一步的疑問。
您不會更改String
的字體大小,而是在顯示String
時更改文本的字體大小(例如,如果您使用的是TextView
)。 String
只是一個包含要顯示的文本的數據對象,與您的顯示方式無關。
您需要使用 Spannable 並將其提供給您的 TextView 以僅修改文本的一部分。 要更改大小使用:
span.setSpan(new RelativeSizeSpan(0.8f), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
您無法更改String
的字體大小,因為String
只是一組字符,但您可以使用setTextSize()方法更改包含此String
的TextView
的字體大小。 希望這可以幫助。
你不能。 因為你不能用任何其他語言。 您需要做的是更改將顯示文本的元素的字體大小,而不是字符串本身。
嘗試在res/layout/
文件夾中創建一個布局,添加一個 TextView 元素,然后搜索textSize
屬性。
在 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-完整的應用程序在這里可用
Spannable 字體:為了為文本的某些部分設置不同的字體大小,可以使用 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 );
信用:從 這個網頁復制和粘貼。
你不能這樣做。 您可以將string
添加到視圖中,例如EditText
或TextView
並在 xml 中設置視圖的文本大小,如下所示:
android:textSize="18dp"
或以編程方式,您可以這樣做:
<YourTextView>.setTextSize(18);
由於之前缺乏想法,我在這里問了類似的問題。 我希望你能通過這個鏈接得到一個想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.