Я пытаюсь постепенно изменить альфа-значение OvalShape () ..
для этого мне нужно вызвать инвалидацию, чтобы он продолжал вызывать себя и отображать себя с увеличенным альфа-значением ..
но установка неверна, так как я не очень разбираюсь в этом ..
public class xml_anim_testing_sub_class extends View {
private ShapeDrawable mDrawable;
int x = 10;
int y = 10;
int width = 300;
int height = 50;
int my_alpha = 255,add_to_my_alpha = 0;
public xml_anim_testing_sub_class(Context context) {
super(context);
}
protected void onDraw(Canvas canvas) {
x++;
mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(0xff74AC23);
mDrawable.setAlpha(my_alpha += add_to_my_alpha );
mDrawable.setBounds(x, y, x + width, y + height);
if (my_alpha == 0)
add_to_my_alpha = 1;
if (my_alpha == 255)
add_to_my_alpha = -1;
mDrawable.draw(canvas);
mDrawable.invalidateSelf();
}
}
Хорошо, я нашел решение, invalidate()
, но в чем же разница между invalidate
и postInvalidate
? потому что оба работают ..
также, какая польза от этого?
mDrawable.invalidateSelf()(cb);