У меня есть список с пользовательским адаптером.Каждый элемент списка имеет ImageView.ImageView берется из камеры или галереи и может быть изменен.
У меня есть этот код в адаптере:
@Override
public View getView( int position,
View convertView,
ViewGroup parent )
{
ViewHolder holder = new ViewHolder();
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.instruction_list_view_entry, null);
holder.instructionIndex = (TextView) convertView.findViewById( R.id.listUp_InstructionNumberTextBoxId );
holder.instructionText = (TextView) convertView.findViewById( R.id.listUp_InstructioTextTextBoxId );
holder.instructionImage = (ImageView)convertView.findViewById( R.id.listUp_InstructionImageViewId );
holder.instructionIndex.setTypeface( MyApp.Fonts.ERAS_BOLD );
holder.instructionIndex.setTextSize( MyApp.Fonts.INSTRUCTION_ID_TEXT_SIZE );
holder.instructionText.setTypeface( MyApp.Fonts.ARIAL );
holder.instructionText.setTextSize( MyApp.Fonts.RUNNING_TEXT_SIZE );
holder.instructionText.setTextColor( Color.BLACK );
}
else
{
holder = (ViewHolder) convertView.getTag();
}
if( super.getItem(position) != null )
{
holder.instructionIndex.setText( Integer.toString(getItem(position).getIndex() ) );
holder.instructionText.setText( getItem(position).getText() );
if( getItem( position ).GetImageUploadItem().isValid() )
{
mImageLoader.DisplayImage( getItem( position ).GetInstructionImageLocation(),
getItem( position ).IsUsingLocalPictures(),
mContext,
holder.instructionImage );
holder.instructionImage.setVisibility( View.VISIBLE );
}
else
{
holder.instructionImage.setVisibility( View.GONE );
}
convertView.setTag(holder);
}
return convertView;
}
@Override
public boolean isEnabled(int position)
{
return mCanBeEnabled;
}
static class ViewHolder
{
TextView instructionIndex;
TextView instructionText;
ImageView instructionImage;
}
ImageLoader - это класс, который загружает изображения изфайл.
Проблема, которую я вижу, состоит в том, что при наличии нескольких строк с изображениями прокрутка не является хорошей, не плавной.
Я обнаружил, что ImageLoading создается все время.Как я могу это исправить?Обратите внимание, что изображение может быть изменено, а затем необходимо перезагрузить.Может быть, если я добавлю данные в адаптер, флаг изображения изменится и загрузится только его?
Есть еще идеи?