我有一个带自定义适配器的列表视图。 每个listview项都有一个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一直在创建。 我该如何解决?请注意,图像可以更改,然后需要重新加载。 也许如果我把适配器中的数据更改为只有加载它的图像?
还有其他想法吗?
答案 0 :(得分:1)
我建议你研究一下你的ImageLoader:
希望这篇文章能指出你的方向: Android: Help in adapting ListView adapter with an ImageLoader Class