我是Android開發領域的新手,我想製作一個時鐘,讓每個數字都有自己的字體。 小時數字有它自己的字體,分鐘數字有它自己的字體。 我該如何做到這一點。幫我。時鐘textview的自定義字體
回答
假設您的字體名稱是DemoFont
。創建一個擴展爲TextView
的類。並初始化DemoFont的字體。
接下來將該字體的.ttf
文件放在assets
文件夾中。
public class DemoFont extends TextView {
public DemoFont (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public DemoFont (Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public DemoFont (Context context) {
super(context);
init();
}
private void init() {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
"demofont.ttf");
setTypeface(tf);
}
}
現在,在你的佈局文件中,你可以像這樣使用它。
<YOUR_PACKAGE_NAME.DemoFont
android:layout_width="match_parent"
android:layout_height="wrap_content" />
我想用兩種不同的字體。一個小時,一個幾分鐘。你可以使用activity_main佈局向我發送MainActivity.java的完整內容。請幫助 –
分享您迄今爲止所嘗試的內容。我們不是在這裏做你的代碼。 –
對於兩個不同的字體使2個不同的類和使用,如你所願。 –
首先,您需要下載一個通常爲.otf格式的字體文件。然後,您需要將此字體導入到您的android studio或eclipse項目的資產文件夾中。做完這些之後,您可以創建一個新的字體並將其設置爲您的文本視圖。就具有小時和分鐘數字的不同字體而言,您需要創建一個包含多個文本視圖的佈局。例如,你可以不喜歡以下
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/hours_digit"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": "
android:id="@+id/time_colon"
android:layout_toEndOf="@id/hours_digit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/time_colon"
android:id="@+id/minutes_digit"/>
</RelativeLayout>
另一種方式來做到這一點,而不是字體設置爲一個TextView每一次,是創建自己的自定義TextView的,這樣的字體將被應用每當你使用它。例如,對於會議紀要文本視圖,你可以這樣做:
public class MinutesTextView extends TextView {
// Constructor method for the text view...
public MinutesTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(attrs);
}
// Constructor method for the text view...
public MinutesTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
}
// Constructor method for the text view...
public MinutesTextView(Context context) {
super(context);
init(null);
}
// Initializes any UI properties of the text view.
private void init(AttributeSet attrs) {
Typeface myTypeface = Typeface.createFromAsset(getContext().getAssets(), "Minutes-font-file.otf");
setTypeface(myTypeface);
}
}
和使用佈局文件從早期。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.yourpackage.MinutesTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/hours_digit"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": "
android:id="@+id/time_colon"
android:layout_toEndOf="@id/hours_digit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/time_colon"
android:id="@+id/minutes_digit"/>
</RelativeLayout>
我想爲每個使用兩個不同的字體。一個小時,一個幾分鐘。 –
好的..因此,讓另一個文本視圖小時,並設置一個不同的類型面對它 –
但如何將它與當前時間。所以它顯示當前時間 –
首先將字體複製到項目中的資產文件夾。
對於小時的TextView
public class HourTextView extends TextView {
public HourTextView(Context context) {
super(context);
init(null);
}
public HourTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(attrs);
}
public HourTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(attrs);
}
public HourTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
}
// Initializes any UI properties of the text view.
private void init(AttributeSet attrs) {
Typeface myTypeface = Typeface.createFromAsset(getContext().getAssets(), "Hour-font-file.otf");
setTypeface(myTypeface);
}
}
對於分鐘的TextView
public class MinuteTextView extends TextView {
public MinuteTextView(Context context) {
super(context);
init(null);
}
public MinuteTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(attrs);
}
public MinuteTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(attrs);
}
public MinuteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
}
// Initializes any UI properties of the text view.
private void init(AttributeSet attrs) {
Typeface myTypeface = Typeface.createFromAsset(getContext().getAssets(), "Minute-font-file.otf");
setTypeface(myTypeface);
}
}
幾秒鐘的TextView
public class SecondTextView extends TextView {
public SecondTextView(Context context) {
super(context);
init(null);
}
public SecondTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(attrs);
}
public SecondTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(attrs);
}
public SecondTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
}
// Initializes any UI properties of the text view.
private void init(AttributeSet attrs) {
Typeface myTypeface = Typeface.createFromAsset(getContext().getAssets(), "Second-font-file.otf");
setTypeface(myTypeface);
}
}
,並在XML文件中做到這一點,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<com.yourpackage.HourTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="10"
android:id="@+id/hourText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text=" : " />
<com.yourpackage.MinuteTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="45 "
android:id="@+id/minuteText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text=" : " />
<com.yourpackage.SecondTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="28"
android:id="@+id/secondsText" />
</LinearLayout>
您提供的代碼是一個靜態文本。我想把它附加到時間,因爲我正在製作一個時鐘應用程序。所以要讓它顯示當前時間。 –
所以你想更新你的textviews? –
但是有什麼價值。它應該隨着當前時間自動變化 –
public class MainActivity extends AppCompatActivity {
public TextView textView;
int countInt;
private int mInterval = 1000; // 1 second by default, can be changed later
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.textView);
mHandler = new Handler();
startRepeatingTask();
}
Runnable mStatusChecker = new Runnable() {
@Override
public void run() {
try {
countInt=countInt+1;
textView.setText(String.valueOf(countInt));
} finally {
mHandler.postDelayed(mStatusChecker, mInterval);
}
}
};
void startRepeatingTask() {
mStatusChecker.run();
}
void stopRepeatingTask() {
mHandler.removeCallbacks(mStatusChecker);
}
}
- 1. ArrayAdapter中textview的自定義字體
- 2. 自定義字體和自定義的TextView在Android
- 3. 使用自定義字體的自定義textview
- 4. Android:當我使用自定義字體時,TextView被複制
- 5. 時尚自定義字體
- 6. 自定義列表視圖中textview的自定義字體更改
- 7. 擴展TextView中的自定義字體? Android的
- 8. 更改使用自定義字體的textview部分的字體顏色
- 9. TextView中的自定義字體拋出NullPointerException
- 10. 具有自定義字體的TextView不是垂直居中
- 11. 自定義TextView小部件的Android設置字體
- 12. 自定義字體
- 13. 自定義字體
- 14. 自定義字體
- 15. 自定義字體?
- 16. 使用自定義TextView類時的Classcastexception
- 17. heroku上的自定義時鐘進程
- 18. TextView字幕和數字時鐘
- 19. UILabel自定義字體顯示*錯誤*自定義字體
- 20. webview的自定義字體
- 21. iOS的自定義字體
- 22. JComboBox的自定義字體
- 23. 自定義字體UINavigationBar的
- 24. 如何將自定義字體添加到此TextView?
- 25. 如何在textview中使用自定義字體android
- 26. 爲所有TextView設置自定義字體(ActionBar除外)
- 27. 嘗試在TextView上設置自定義字體 - 空指針
- 28. Android - 將自定義字體應用到textview中不起作用
- 29. 自定義TextView的邊距
- 30. $ .WIDTH()使用自定義字體時
針對你的問題,你想使用自定義字體並設置不同的顏色? –
我想要自定義字體。請幫我 –