Для моего проекта я Загрузка изображений из Интернета, так что я реализовал простой класс для него:Пользовательского Drawable ничьего() метод не вызывается (Android)
@SuppressWarnings("deprecation")
public class DynamicDrawable extends BitmapDrawable{
private Drawable drawable;
@Override
public void draw(Canvas canvas) {
// override the draw to facilitate refresh function later
if(drawable != null) {
drawable.draw(canvas);
}
Log.d("dnull", String.valueOf(drawable == null));
}
protected void setDrawable(Drawable drawable){
this.drawable = drawable;
}
}
Существует обработчик, который получает и анализирует изображение, добавляет его асинхронно к классу и делает недействительным представление, которое я проверил и отлично работает. Выделяемая переменная не равна нулю. Затем он добавляется в ImageView. Однако метод draw() никогда не вызывается. Даже когда он впервые добавлен. Вот код, в котором изображение входит в виде:
@Override
public View getView(int position, View convertView, ViewGroup parent){
View view = convertView;
if(view == null){
view = inflater.inflate(R.layout.view_concerteposter, parent,false);
}
ConcertPoster poster = posters.get(position);
ImageView iconView = (ImageView)view.findViewById(R.id.ticketBuy_icon);
TextView titleView = (TextView)view.findViewById(R.id.ticketBuy_name);
TextView dateView = (TextView)view.findViewById(R.id.ticketBuy_date);
iconView.setImageDrawable(poster.getImage());
System.out.println(poster.getImage());
titleView.setText(poster.getTitle());
dateView.setText(poster.getDate());
return view;
}
Да, я проверил объекты, они все правильно и иметь правильный в них вводимом коэффициент.
Любая помощь будет оценена по достоинству.
Оказывается, вы ожидаете, метод Жеребьевка() для вызывается автоматически, когда вы устанавливаетеImageDrawable(), но почему вы ожидаете этого? В документации не указано, что это ожидаемое поведение. – mttdbrd
Это случается с регулярными выводами. Кроме того, его нельзя вызывать вручную, поскольку объект Canvas удерживается системой и недоступен. – Alex
В документации говорится: «Вручную визуализируйте этот вид (и все его дочерние элементы) на данный холст». Насколько я могу судить, вы должны втягивать в холст, который вы поставляете. Я собираюсь проверить это, и пусть вы знаете, что я нахожу. – mttdbrd