BottomLine 动画
施飞鸿
2023-12-01
public class BottomLineImageView extends ImageView {
private static int COUNT = 3;
private int position;
private float offset;
private float bottom_line_width;
public BottomLineImageView(Context context) {
super(context);
}
public BottomLineImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public BottomLineImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Bitmap bitmap = ((BitmapDrawable) getDrawable()).getBitmap();
bottom_line_width = bitmap.getWidth();
offset = 1.0f * (ScreenWidth/ COUNT - bottom_line_width) / 2;
Matrix matrix = new Matrix();
matrix.postTranslate(offset * 2, 0);
setImageMatrix(matrix);// 设置动画初始位置
}
public void translateToPosition(int arg0) {
float one = offset * 2 + bottom_line_width ;//偏移量
Animation animation = new TranslateAnimation(one * position, one * arg0, 0, 0);
position = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
startAnimation(animation);
}