Мне нужно заменить фразы текста в a изображениями, а затем добавить их в TextView. Для обычных Drawables это не проблема, но когда Drawable является AnimationDrawable, я не знаю, где и когда вызывать .start ();
.
Вот как я добавляю текст в TextView:
textview.append(Html.fromHtml(textWithHtmlImgTags, imagegetter, null));
Теги изображений в textWithHtmlImgTags заменяются с помощью imagegetter:
new ImageGetter()
{
@Override
public Drawable getDrawable(String source) {
if(source.endsWith("_ani"))
{
Log.i("cmv", "This is an animated drawable.");
AnimationDrawable dra = (AnimationDrawable)res.getDrawable(sRes.get(source));
dra.setBounds(0, 0, dra.getIntrinsicWidth(), dra.getIntrinsicHeight());
dra.start(); // This doesn't work..
return dra;
}
Drawable dr = res.getDrawable(sRes.get(source));
dr.setBounds(0, 0, dr.getIntrinsicWidth(), dr.getIntrinsicHeight());
return dr;
}
};
Мои AnimationDrawables добавляются, но они не анимированы (они застревают в кадре 1) .
В документации говорится:
Важно отметить, что метод start (), вызываемый AnimationDrawable, не может быть вызван во время метода onCreate () вашего Activity, потому что AnimationDrawable еще не полностью прикреплен к окну. .Если вы хотите воспроизвести анимацию немедленно, не требуя взаимодействия, вы можете вызвать ее из метода onWindowFocusChanged () в своей Activity, который будет вызываться, когда Android переведет ваше окно в фокус.
Поскольку изображения добавляются динамически, я не думаю, что это имеет какое-либо отношение к onCreate ().
Итак, я предполагаю, что я вызываю свой .start ()
, когда мой drawable еще не полностью прикреплен к окну
, но где / когда / как должен я называю это ?
Заранее спасибо!