我尝试使用自定义字体创建数字时钟小部件。事实证明这是我体验Android的最大挑战。 (认为它会像tc.setTypeFace("whatever")
一样简单,并且可以用它完成)
最好的方式似乎是抓住TextClock
并使用ImageView
并使用自定义AlarmManager
将Bitmap传递给它,以便每秒为视图创建一个新图像。
在进入Bitmap生成之前,我使用本教程Alarm Manager Widget
在一个简单的TextView
上练习
我的问题是我无法每秒更新一次。我用
am.setRepeating(AlarmManager.RTC_WAKEUP , System.currentTimeMillis()+1000, 1000, pi);
但它仍然只是每分钟左右更新一次(不过每分钟都会更新)。我认为这与最近的操作系统(Kitkat,Lollipop)处理AlarmManagers
的方式有关。
我的问题是:
这是正确的方法吗?如果没有,请解释我应该做什么。
如何让小部件每秒更新一次?
答案 0 :(得分:4)
我有同样的问题...... 到目前为止,我有两个选择:
android:fontFamily="sans-serif-thin"
属性。
像魅力一样!这是我的TextView:
<TextView
android:id="@+id/Time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="none"
android:fontFamily="sans-serif-thin"
android:gravity="center_vertical|center_horizontal"
android:includeFontPadding="false"
android:singleLine="true"
android:text="12:01"
android:textColor="#fff"
android:textSize="80sp" />
这就是它的样子:
此方法的唯一缺点是您无法选择大量系统字体。
编辑:每分钟更新一次小部件 - 您需要启动一个Service,它可以每分钟更新您的时钟(如果需要,可以更新时钟)。 也请检查this example。
答案 1 :(得分:3)
使用此link将Textclock降至API级别17以下。 你可以使用.setTypeface(Typeface.createFromAsset(getAssets(),fonts / font.ttf&#34;)); 用它。
答案 2 :(得分:3)