Android ImageView PostInvalidate не работает все время
Я расширил ImageView в Android, где я загружаю изображение, и когда изображение прибывает, я лишаю законной силы представление, чтобы получить перерисовку. Если я использую кеширование, оно не работает постоянно, поэтому я подозреваю, что android игнорирует некоторые недействительные команды, если система только что уже перерисовала. Без кеша он работает медленнее, а рисование работает быстрее, с кешем - быстрее, и время от времени перерисовываются не все изображения. (в потоке я получаю первый вызов onDraw с помощью инфраструктуры, и когда мое изображение готово, я вызываю postInvalidate и получаю второй onDraw, где я рисую растровое изображение на холсте)
@Override
public void onLoadImage(Bitmap image, State state) {
_image = image;
postInvalidate();
}
@Override
protected void onDraw(Canvas canvas) {
if (_image == null) {
super.onDraw(canvas);
} else {
Rect destination = new Rect(0, 0, canvas.getWidth(), canvas.getHeight());
canvas.drawBitmap(_image, null, destination, _paint);
}
}
okHttpClient настроен следующим образом (ниже), onLoadImage происходит в обратном вызове onResponse из сетевой библиотеки, поэтому не в потоке пользовательского интерфейса, поэтому я использую postInvalidate вместо Invalidate
private static volatile OkHttpClient _httpClient = null;
public static OkHttpClient getHttpClient() {
if(_httpClient == null)
{
synchronized (Factory.class) {
if (_httpClient == null) _httpClient = new OkHttpClient.Builder().retryOnConnectionFailure(true).cache(getHttpCache()).build();
}
}
return _httpClient;
}
Андроид игнорирует Invalidate в некоторых случаях? Любая помощь приветствуется! Спасибо