0

ボリューム スライダー (カラー ラインのみ) を含むカスタム フィールドがあります。トラックパッドの動きに合わせてスライダーを更新したいのですが、他に無効化を呼び出す方法はありますか? これは私にとって本当に遅いので、リージョンのみを無効にしようとしましたが、結果は同じでした。無効化せずにフィールドの一部を再描画する方法はありますか?

protected boolean navigationMovement(int dx, int dy, int status, int time) {
    if (dx >0) {
        if (value < maxValue) {
            value++;
            invalidate(xPosSlider + value*sliderStep, getHeight()/2 - SLIDER_HEIGHT/2, sliderStep, SLIDER_HEIGHT);                                  
            return true;
        }
    } else if (dx < 0) {
        if (value > 0) {
            value--;
            invalidate();
            return true;
        }
    }

    return super.navigationMovement(dx, dy, status, time);
}
4

1 に答える 1

1

最初に確認する場所は、独自のコードです。ペイント操作がタイムリーに発生するのを妨げている、偶数スレッドで時間のかかることをしていませんか? それが問題の可能性があります。

それ以外の場合は、ここに示すようにペイント メソッドを直接呼び出すことができます。ただし、最善の解決策は、イベント スレッドが、別のスレッドで実行する必要がある作業に拘束されないようにすることです。

于 2011-02-08T14:58:48.783 に答える