ウィジェットでカスタムフォントを設定するにはどうすればよいですか?
remoteViews.setTextViewText(R.id.text1,""+ days);
誰かがこれのフォントを設定する方法の例を教えてもらえますか?
ウィジェットでカスタムフォントを設定するにはどうすればよいですか?
remoteViews.setTextViewText(R.id.text1,""+ days);
誰かがこれのフォントを設定する方法の例を教えてもらえますか?
ウィジェットでカスタムフォントを設定するにはどうすればよいですか?
あなたはそうしない。を介してレイアウトXMLの3つの組み込み書体のいずれかを選択できますが、でカスタムフォントを使用するandroid:typeface
ことはできません。、でカスタムフォントを指定するためのJavaメソッドは、では使用できません。TextView
RemoteViews
setTypeface()
TextView
RemoteViews
役立つ可能性のある2つの回避策があります。
1-AppWidgetが設定するテキストのみを表示できる場合は、SpannableStringsとTypefaceSpansを使用してこれを行うことができます(太字の場合はStylespansなど)。通常のsetTextViewText呼び出しを使用してSpannableStringを設定できます。
2-将来のテキストがフォントファミリとともに表示されるように、TextViewのフォントファミリを実際に変更する必要がある場合、これはより困難です。CommonsWareで述べたように、RemoteViewを使用して任意のフォントファミリをプログラムで設定することはできません。ただし、事前定義されたフォントのセットが少ない場合(または太字などのフォントの太さ)、これを行う方法があります。きれいではありませんが、フォントとバリエーションの数が適切に制御されていれば機能します。
私の場合、TextClockを使用して時計アプリウィジェットを作成していました。テキストの更新はAppWidgetによって制御されていないため、SpannableStringsを使用できませんでした。6つの組み込みフォントオプションを提供したかったのです。レイアウトファイルに6つのTextClockを作成し、それぞれに異なるフォントを使用して、構成時に1つを表示し、他を「削除」しました。醜いが効果的。それで:
appwidget_layout.xml
<TextClock
android:id="@+id/clock_seconds_condensed"
android:fontFamily="sans-serif-condensed"
....
/>
<TextClock
android:visibility="gone"
android:id="@+id/clock_seconds_normal"
android:fontFamily="sans-serif"
....
/>
<TextClock
android:visibility="gone"
android:id="@+id/clock_seconds_black"
android:fontFamily="sans-serif-black"
....
/>
...
configurationActivity
//Which font do we want? Choose that clock
val clockid = when (fontFamily) {
"san-serif" -> R.id.clock_seconds_normal
"sans-serif-light" -> R.id.clock_seconds_light
"sans-serif_black" -> R.id.clock_seconds_black
"sans-serif-thin" -> R.id.clock_seconds_thin
"sans-serif-medium" -> R.id.clock_seconds_medium
else -> R.id.clock_seconds_condensed
}
//Hide all the other clocks
if (clockid != R.id.clock_seconds_normal) views.setInt(R.id.clock_seconds_normal, "setVisibility", View.GONE)
if (clockid != R.id.clock_seconds_light) views.setInt(R.id.clock_seconds_light, "setVisibility", View.GONE)
if (clockid != R.id.clock_seconds_black) views.setInt(R.id.clock_seconds_black, "setVisibility", View.GONE)
if (clockid != R.id.clock_seconds_thin) views.setInt(R.id.clock_seconds_thin, "setVisibility", View.GONE)
if (clockid != R.id.clock_seconds_medium) views.setInt(R.id.clock_seconds_medium, "setVisibility", View.GONE)
if (clockid != R.id.clock_seconds_condensed) views.setInt(R.id.clock_seconds_condensed, "setVisibility", View.GONE)
//Set clock parameters
views.setInt(clockid, "setVisibility", View.VISIBLE)
....
custom font effects
これを試してみてください、それはあなたがあなたの申請方法を理解するのに役立つかもしれませんtextview