TextView 不缩小

TextView not zooming out

我的应用程序中有一个 activity,其中有两个文本视图和两个分别用于放大和缩小的按钮。 放大似乎工作得很好但缩小工作相反,它放大而不是缩小。 这是代码

 ibzoomout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                float s1 = tv1.getTextSize();
                float s2 = tv2.getTextSize();
                s1 = s1-5;
                s2 = s2-5;
                tv1.setTextSize(s1);
                tv2.setTextSize(s2);
            }
        });

ibzoomin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                float s1 = tv1.getTextSize();
                float s2 = tv2.getTextSize();
                s1 = s1+5;
                s2 = s2+5;
                tv1.setTextSize(s1);
                tv2.setTextSize(s2);
            }
        });

tv1 和 tv2 是文本视图,ibzoomin 和 ibzoomout 是按钮。

正如我所见,您想要 in/out 缩放 TextView,我创建了以下代码,可能对您有所帮助:

   ibzoomout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            float s1 = tv1.getTextSize();
            float sp1 = s1 / getResources().getDisplayMetrics().scaledDensity;

            float s2 = tv2.getTextSize();
            float sp2 = s2 / getResources().getDisplayMetrics().scaledDensity;

            tv1.setTextSize(decreaseSize(sp1));
            tv2.setTextSize(decreaseSize(sp2));
        }
    });
    ibzoomin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            float s1 = tv1.getTextSize();
            float sp1 = s1 / getResources().getDisplayMetrics().scaledDensity;

            float s2 = tv2.getTextSize();
            float sp2 = s2 / getResources().getDisplayMetrics().scaledDensity;

            tv1.setTextSize(increaseSize(sp1));
            tv2.setTextSize(increaseSize(sp2));
        }
    });


    public Float increaseSize(float diff) {
        size = diff + 5;
        return size;
    }

    public Float decreaseSize(float diff) {
        size = diff - 5;
        return size;
    }