2017-08-28 3 views
-3

GitHubに関するライブラリがたくさんあり、この引数についてのスタックオーバーフローに関するいくつかの質問があります。しかし、私のニーズに合うものはありません。Androidでカスタムシークバーを描く

は、私はちょうどこのような何かを描画する必要があります。

enter image description here

進捗ラインが無い親指で黄色でなければなりません。

ありがとうございます。

+0

私はAndroidが比較的新しいです。私の質問に何が間違っていますか?なぜそれはdownvotedですか? –

+0

何を試しましたか?私たちはコード作成サービスではありません –

+0

私はAndroidに関しては比較的新しいと言いました。私がスタックオーバーフローで見つけたものを変換しようとした後、私は私の特定の事例の助けを借りなければ私がそれを行うことができないことに気付きました。非常に申し訳ありません、私はそれが時間の損失の問題だと知っています。しかし、私はそれに尋ねなければなりません。 –

答えて

0

このためにビューを作成する必要があります。 、また、私は考えることができ、より簡単な解決策は、全体の幅をoccupes長方形のプログレスバーを作成して、真ん中の一番上に描画することですAndroid creating custom view

で再生ボタンを見てください

+0

私はそれを試してみましょう。ありがとう –

1

あなたが使用することができます私が説明したものに似て何かhere

円の代わりに四角形を使用してください。サイズを変更して矩形の実際のサイズを計算し、パーセンテージを変更して矩形のサイズを再計算/パスを再作成する方法を変更しました。

パスを変更するときには、invalidate()を呼び出して再描画する必要があります。

擬似コード:

public void setProgress(float progress) { 
    this.progress = progress; 
    refreshProgressBar(); 
} 

@Override 
protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
    super.onSizeChanged(w, h, oldw, oldh); 
    this.currentW = w; 
    this.currentH = h; 
    refreshProgressBar(); 
} 

private void refreshProgressBar() { 
    path.reset(); 
    // build your clipping path using progress/currentW/currentH 
    path.close(); 
    invalidate(); 
} 

あなたは、単一のカスタムビューですべてを行うか、互いの上に2つのビューを持つことができますが、バーの「塗りつぶし」を含むものは、私が説明した方法でクリップされています上記。

キャンバスでクリッピングが発生することに注意してください。したがって、カスタムビューを使用する場合は、進行状況ビューを描画する前にクリッピングを設定し、完了したらクリッピングを設定してください(この場合は直接カラーを描画することもできますが、複雑なカラーパターンの場合、 )。私が与えたリンクのようにクリッピングViewGroupを使用する場合は、クリッピングされたビューが進捗だけになるようにレイアウトを作成する必要があります。

数学で少し演奏する場合は、アートワークに合ったパスを描き、レイアウトの上にフルカラーの矩形で使用することもできます。

矩形と円を一緒に追加して円を削除すると(パス上での加算/減算/乗算のためにOPを使用)、手描きのものに似たパス(形状)を取得する必要があります。

Good Luck。

関連する問題