使文字变得越来越小

时间:2017-09-18 11:35:08

标签: java android

我正在尝试在Android Studio上创建应用程序。我有2个按钮。加号和减号。每次点击其中一个按钮时,我都需要知道如何使文字越来越小。

这是我的MainActivity.java:

    Button Min = (Button)findViewById(R.id.Min);
    Min.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            TextView t = (TextView)findViewById(R.id.DeText);
            t.setTextSize(-5);
        }
    });

这是我的.xml:

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Plus"
        android:layout_gravity="top|left"
        android:text="+"
        android:textSize="50dp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Min"
        android:layout_gravity="top|right"
        android:text="-"
        android:textSize="50dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="50dp"
        android:id="@+id/DeText"
        android:text="Text"/>

我还制作了我正在处理的页面的屏幕截图。希望这能提供有关我的最终产品的更多信息:

enter image description here

2 个答案:

答案 0 :(得分:1)

您只需通过获取当前大小并添加/减去所需的值来设置文本大小。

Button minButton = (Button)findViewById(R.id.Min);
    minButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            TextView t = (TextView)findViewById(R.id.DeText);
            t.setTextSize(COMPLEX_UNIT_PX, t.getTextSize() - 5f);
        }
    });

最好在缩小尺寸之前检查当前文字大小是否太小。

答案 1 :(得分:0)

您应该使用sp代替dp来处理文字大小。从 documentation ,您可以使用setTextSize方法,它包含两个参数。

  

void setTextSize(int unit,                   浮动大小)

因此,您可以在按钮单击后指定文本大小:

Button button = (Button)findViewById(R.id.buttonId);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        TextView text = (TextView)findViewById(R.id.DeText);
        text.setTextSize(TypedValue.COMPLEX_UNIT_SP,text.getTextSize()-1);
    }
});