ListView があり、オーディオが一時停止されたときに LayerDrawable を描画して、再生された量の進行状況を表示します。問題は、この ListView 要素を画面からスクロールして元に戻すときです。そこに戻る画像は表示されません。
これはアダプタの一部です:
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
allView=convertView;
if (view == null) {
view = lInflater.inflate(R.layout.item, parent, false);
}
............
switch (whatToDo) {
//here's my normal state of the Image
case 0 :
((ImageView) view.findViewById(R.id.ivImage)).setImageResource(p.imagestatus);
break;
//here's my Paused state of the Image - what I need to stay on the screen
case 1:
Log.e ("MyLog","paused! imagestatus="+p.imagestatus);
//Drawing progress
LayerDrawable ld= (LayerDrawable) ctx.getResources().getDrawable(R.drawable.onpause);
ClipDrawable cd=(ClipDrawable) ld.findDrawableByLayerId(R.id.clip_pause);
p.imagestatus=-p.imagestatus;
cd.setLevel(4500+(30*p.imagestatus));
((ImageView) view.findViewById(R.id.ivImage)).setImageDrawable(ld);
break;
...
return view;
}
ご覧のとおり、通常の getView メソッドです。しかし、この画像が画面から消えると、二度と戻ってきません。どうすれば修正できますか?