Android 文本视图未缩小

Android 文本视图未缩小,android,android-studio,textview,Android,Android Studio,Textview,我的应用程序中有一个活动,我有两个文本视图和两个按钮分别用于放大和缩小。 放大看起来效果不错,但缩小效果正好相反,它放大而不是缩小。 这是密码 ibzoomout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { float s1 = tv1.getTextSize();

我的应用程序中有一个活动,我有两个文本视图和两个按钮分别用于放大和缩小。 放大看起来效果不错,但缩小效果正好相反,它放大而不是缩小。 这是密码

 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是文本视图,iZoomin和iZoomout是按钮。

如我所见,您想放大/缩小这两个
文本视图,我创建了以下代码,可能对您有帮助:

   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;
    }

非常感谢@Mouaad,成功了。你能解释一下我的代码有什么问题吗?