Ich bin neu in der Welt der Android-Entwicklung und ich möchte eine Uhr so machen, dass jede Ziffer der Zeit hat seine eigene Schrift. Stundenziffern haben ihre eigene Schrift und Minutenziffern haben ihre eigene Schrift. Wie kann ich das tun? Hilf mir.Benutzerdefinierte Schriftart für Uhr Textansicht
Antwort
Nehmen wir an, Ihr Schriftartname lautet DemoFont
. Machen Sie eine Klasse, die sich erweitert TextView
. Und initialisiere die Schriftart für den DemoFont.
Als nächstes die .ttf
Datei dieser Schriftart in den Ordner 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);
}
}
Jetzt, in Ihrer Layout-Datei können Sie dies auf diese Weise verwenden.
<YOUR_PACKAGE_NAME.DemoFont
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Ich möchte zwei verschiedene Schriftarten verwenden. Eine für Stunden und eine für Minuten. Kannst du mir den kompletten Inhalt von MainActivity.java mit activity_main Layout schicken? Bitte helfen Sie –
teilen, was Sie bisher versucht haben. Wir sind nicht hier, um Ihren Code zu schreiben. –
Für zwei verschiedene Schriften machen Sie 2 verschiedene Klassen und verwenden Sie, wie Sie wollen. –
Zuerst müssen Sie eine Schriftartdatei herunterladen, die normalerweise das .otf-Format hat. Dann müssen Sie diese Schriftart in Ihren Assets-Ordner in Ihrem Android-Studio oder Eclipse-Projekt importieren. Danach können Sie ein neues Schriftbild erstellen und es auf Ihre Textansicht einstellen. In Bezug auf unterschiedliche Schriftarten für die Stunden- und Minutenziffer müssen Sie ein Layout mit mehreren Textansichten erstellen. Zum Beispiel, Sie so etwas wie die folgenden
<?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>
Einen anderen Weg, dies zu tun tun könnte, anstatt eine Schrift zu einem Textview jedes Mal einstellen, ist Ihre eigene Textview zu erstellen, so dass die Schrift angewandt wird wann immer du es benutzt. Zum Beispiel für die Minuten Textansicht, könnten Sie tun:
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);
}
}
und die, die Layout-Datei aus früheren verwenden.
<?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>
Ich möchte zwei verschiedene Schriftart für jeden verwenden. Eine für Stunden und eine für Minuten. –
Ok .. so machen Sie eine andere Textansicht für Stunden und setzen Sie eine andere Art Gesicht dazu –
Aber wie man es mit der aktuellen Zeit in Verbindung setzt.So zeigt es aktuelle Zeit an –
Kopieren Sie zuerst die Schriftarten in den Ordner "Assets" in Ihrem Projekt.
Für Hour 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);
}
}
Für Minute 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);
}
}
Für Sekunden 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);
}
}
und in XML-Datei tun dies,
<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>
Der Code, den Sie zur Verfügung stellten, ist ein statischer Text. Ich möchte es an die Zeit anhängen, wie ich eine Uhr-App mache. Also, um es zu zeigen, die aktuelle Zeit. –
Sie möchten also Ihre Textansichten aktualisieren? –
Aber welcher Wert ist zu setzen. Es sollte automatisch mit der aktuellen Uhrzeit geändert werden –
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. Benutzerdefinierte Schriftart für JComboBox
- 2. Benutzerdefinierte Schriftart für android.support.design.widget.TabLayout
- 3. Benutzerdefinierte Schriftart für alle TextViews
- 4. benutzerdefinierte Schriftart für Webview Android
- 5. Benutzerdefinierte Schriftart für ActionBarSherlock-Registerkarten
- 6. benutzerdefinierte Schriftart und Schriftglatten
- 7. Libgdx - Benutzerdefinierte Shader für TEXTBUTTON Schriftart
- 8. Benutzerdefinierte Android-Taste/Textansicht unterstreichen
- 9. Benutzerdefinierte Schriftart nicht
- 10. Benutzerdefinierte Schriftart in Pixi.js
- 11. Benutzerdefinierte Schriftart verwenden
- 12. Benutzerdefinierte Barcode-Schriftart?
- 13. WPF - Benutzerdefinierte Schriftart hinzufügen
- 14. Benutzerdefinierte Schriftart Awesome CSS
- 15. Html in Textansicht mit verschiedenen Schriftarten für fett und kursiv
- 16. Benutzerdefinierte Schriftart Problem in Android
- 17. Benutzerdefinierte Schriftart in Android-Projekt
- 18. IOS 8, benutzerdefinierte Schriftart Ausgabe
- 19. Verwenden Sie die System-Monospace-Schriftart in GTK-Textansicht
- 20. Benutzerdefinierte Schriftart in Silverlight hinzufügen
- 21. Phonegap: Benutzerdefinierte Schriftart funktioniert nicht
- 22. benutzerdefinierte Schriftart verwenden Android Xamarin
- 23. PDFKit zeigt keine benutzerdefinierte Schriftart
- 24. benutzerdefinierte android analoge uhr bei widget
- 25. AngularJS benutzerdefinierte Anweisung $ Uhr funktioniert nicht
- 26. selectableItemBackgroundBorderless für Textansicht
- 27. Pinching Zoom für Textansicht
- 28. Android - Wie eine benutzerdefinierte Schriftart für ganzen App einzurichten
- 29. Benutzerdefinierte TTF-Schriftart für DrawString-Bild-Rendering verwenden
- 30. Wie man benutzerdefinierte Schriftart für Warnungsdialog in Android einstellt?
Seien Sie speziell auf Ihre Frage, möchten Sie benutzerdefinierte Schriftart verwenden und andere Farbe einstellen? –
Ich möchte benutzerdefinierte Schriftart. Bitte helfen Sie mir –