java - applyTransformation 上除以零错误

标签 java android

我在 androids 动画类的 applyTransformation 方法中得到除以零的错误:

05-15 21:13:59.330: E/AndroidRuntime(16997): java.lang.ArithmeticException: divide by zero
05-15 21:13:59.330: E/AndroidRuntime(16997):    at com.special.ResideMenuDemo.FontResize.applyTransformation(FontResize.java:34)

这就是我的 applyTransformation 方法:

@Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        super.applyTransformation(interpolatedTime, t);

        SpannableStringBuilder spanTxt = new SpannableStringBuilder("He");

        int length = spanTxt.length();

        for (int i = 0; i < length; i++) {

            /*Log.e("Log", "length : " + length + "\r\n" + 
                    "i : " + i + "\r\n" + 
                    "interpolatedTime : " + interpolatedTime);*/

            float size = 1 / (1 / length * (i+1)) * interpolatedTime;

            if(size >= 1)
                continue;

            spanTxt.setSpan(new RelativeSizeSpan( size ), i, i+1, 0 );

        }

        text.setText(spanTxt);

    }

如果 interpolatedTime 为 0,则第一个字母的大小应为 0

float size = 1 / (1 / length * (i+1)) * interpolatedTime;
float size = 1 / (1 / 2 * (0 + 1)) * 0,0;

但我得到的错误除以零

最佳答案

您正在使用 1/2 执行整数除法,这在 Java 中会产生另一个整数 0,从而导致除以零错误。

1 指定为 float 文字 1.0f,以强制从一开始就进行浮点运算。

float size = 1 / (1.0f / length * (i+1)) * interpolatedTime;

关于java - applyTransformation 上除以零错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23687083/

相关文章:

android - 程序类型已经存在 : gradle build error

java - spring-boot 如何提供特定的 url?

java - 库 'jna-4.2.2.jar' 包含不会在 Android 设备上运行的 native 库

java - Spark Connector - 使用元组列表时无法获取数据

Android 和 SQLite : When to use semicolons to end statements?

android - android 和 ios 移动设备需要什么屏幕尺寸?

java - 如何知道java项目中存在一些Web服务

java - 从 URLConnection 读取(php 文件)

安卓数据绑定(bind) : BindingAdapter vs InverseBindingAdapter

android - 未收到测试事件 - Android Studio