私はカスタムアダプタでリストビューを持っています。 各リストビューアイテムにはImageViewがあります。 ImageViewはカメラまたはギャラリーから取得され、変更することができます。ListViewAdapterイメージの読み込み
私は、アダプタにこのコードを持っている:
@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が常に作成されていることがわかりました。 どうすれば修正できますか?画像を変更してから再読み込みする必要があることに注意してください。 アダプター内のデータにイメージのフラグを変更してロードするだけかもしれませんか?
他のアイデアはありますか?
がうまくいけば、この記事はその方向にあなたをポイントします: