要在 Android 上实现 ImageView 的颜色无限循环,可以使用 PorteryDuff.Mode 中的 SRC_IN 模式。 首先,在 xml 文件中定义 ImageView 和初始颜色,然后在 Java 代码中创建一个无限循环动画,并将动画应用到 ImageView。以下是示例代码:
activity_main.xml
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ImageView mImageView;
private int[] mColors = {Color.RED, Color.GREEN, Color.BLUE}; // 定义颜色数组
private int mIndex = 0; // 初始化颜色索引
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = findViewById(R.id.imageView);
// 创建一个颜色渐变动画并应用到 ImageView
ObjectAnimator animator = ObjectAnimator.ofInt(mImageView, "colorFilter", mColors[0], mColors[1], mColors[2]);
animator.setDuration(1000);
animator.setEvaluator(new ArgbEvaluator());
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.setRepeatMode(ValueAnimator.REVERSE);
animator.start();
}
}