ImageView、ListView、いくつかの TextViews などとして ScrollView にラップされたレイアウトがあります。ユーザーがスクロールするたびに、親ビューはすべての子ビューの draw() メソッドを呼び出します。私のImageViewはその場で構築された複雑なビットマップであるため、私のimageviewのdraw()が継続的に呼び出され、ImageView.onDraw()に委任され、次に私の複雑なConstructMyBitmap.draw()に委任され、私の毎回ビットマップ。
scrollevent でこの imageView.onDraw() 呼び出しを抑制する必要があります。スクロールが発生するたびに複雑なビットマップを再描画したくありません。
onDraw()内でスクロールイベントを識別する方法は?
または、これを処理するより良い方法はありますか?
ロマン・ガイへ:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(chart != null && chart.shdRedraw())
{
chart.draw(canvas);
}else
{
//Do nothing - Canvas should retain the old data
}
// :-) Happy, Now I control when the chart shd be drawn but.. :-(
}
残念ながら、onDraw() が onScroll イベントと呼ばれ、グラフを描画しないことにした場合、結果は空白のグラフ領域になります。onDraw() で指定されたキャンバスには、以前に描画された情報が含まれていません。onDraw() がキャンバスをフラッシュするかどうかわかりませんか? これに関するガイダンスはありますか?