如何更改android时钟的分钟数字的文本大小

时间:2016-04-28 08:47:51

标签: java android textview simpledateformat

我想将小时textize更改为25.0dip和minute textsize到18.0dip的时间。

我正在使用SimpleDateFormat来获取当前时间。但是当我改变文本大小时,整个文本化变为相同。我想分别改变大小。

2 个答案:

答案 0 :(得分:0)

您需要创建两个不同的TextView,textSize为25sp,textTize为18sp,分钟为textspize。然后将它们放在另一个旁边的xml中。

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.gohidoc.realmtest.MainActivity">

<TextView
    android:id="@+id/hours"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="25sp"
    android:text="18:"/>
<TextView
    android:id="@+id/minutes"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="18sp"
    android:text="25"/>

</LinearLayout>

您活动中的代码:

private TextView hours, minutes;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    hours = (TextView) findViewById(R.id.hours);
    minutes = (TextView) findViewById(R.id.minutes);

    this.hours.setText(YOUR HOURS);
    this.minutes.setText(YOUR MINUTES);

答案 1 :(得分:0)

有两种方法可以实现这个目标

  • 使用 Spannable Strings 在代码中指定相对文本大小 - 单元格TextView解决方案
  • 使用textView的 TextSize属性在布局文件中分配相对文本大小 -Double TextView Solution

结果将是相同的: -

enter image description here

全球贬值

check_bsearch

获取观点

private TextView spannableTextView;
private TextView hourTextView;
private TextView minuteTextView;

此方法演示了两种方式

    // Single TextView with spannable string
    spannableTextView = (TextView) findViewById(R.id.textView1);

    // Two TextView solution
    hourTextView = (TextView) findViewById(R.id.textViewHour);
    minuteTextView = (TextView) findViewById(R.id.textViewMinute);

布局文件

public void updateTime() {

    // WITH SPANNABLE STRING
    Calendar calendar = Calendar.getInstance();

    SpannableString span = new SpannableString(
            calendar.get(Calendar.HOUR_OF_DAY) + "H" + calendar.get(Calendar.MINUTE) + "M");

    // span.setSpan(new RelativeSizeSpan(0.75f), 2, 3, 0);
    span.setSpan(new RelativeSizeSpan(0.72f), 3, 6, 0);

    spannableTextView.setText(span);

    // WITHOUT SPANNABLE STRING

    hourTextView.setText(calendar.get(Calendar.HOUR_OF_DAY) + "H");

    minuteTextView.setText(calendar.get(Calendar.MINUTE) + "M");

}

现在您可以选择您想要的方式。