0

我想制作一个像果冻豆一样的时钟(小时为粗体,分钟为正常),如下图所示: 在此处输入图像描述

我从 Android openSource 下载了 EditClock 小部件,时钟工作,但我无法使用此代码使“粗体”工作:使用 Jelly Bean 字体的EditClock 源代码。这是我布局的一部分

<com.myApp.views.DigitalClock
        android:id="@+id/digitalClock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/musicDashboard"
        android:layout_centerHorizontal="true" >
        
         <TextView android:id="@+id/timeDisplayBackground"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:textColor="#ffffffff"
            android:textSize="@dimen/clock_text_size"
           
            android:textAppearance="?android:attr/textAppearanceMedium"
           android:layout_marginBottom="6dip"
            android:ellipsize="none"
            />

        <TextView android:id="@+id/timeDisplayForeground"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:ellipsize="none"
             android:textStyle="bold"
            android:textColor="#ffffffff"
            android:layout_alignStart="@+id/timeDisplayBackground"
             android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_alignTop="@+id/timeDisplayBackground"
            android:layout_marginBottom="6dip"
            android:textSize="@dimen/clock_text_size"
            />
    </com.myApp.views.DigitalClock>

我怎样才能使这项工作?在姜饼和向上?谢谢

4

1 回答 1

1

您可以修改 DigitalClock 小部件的代码以在文本的第一部分周围添加一个 Span。在方法中尝试此代码updateTime()

CharSequence newTime = DateFormat.format(mFormat, mCalendar);
SpannableString spannable = new SpannableString(newTime);
int endIndex = spannable.indexOf(':');
spannable.setSpan(new StylePan(Typeface.BOLD), 0, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTimeDisplayBackground.setText(spannable);
mTimeDisplayForeground.setText(spannable);
mAmPm.setIsMorning(mCalendar.get(Calendar.AM_PM) == 0);
于 2013-03-09T00:37:25.013 回答