2016-12-27 14 views
0

アンドロイドでキャンバスをセットアップして、グラフィックスを正常に描画しました。進行状況を更新するプログレスバーを導入したいと思っていました。これまでのところ、Iiはプログレスバーを設計通りに描いていて、pb.setProgressも更新しています。プログレスバー:キャンバスでの位置/位置の設定

私の問題は、進行状況バーが左上隅に表示され、それを中央に移動したいということです。私はProgressBarのサポートを見つけることができません(私はProgressDialogのためにできますが、私はこれを望んでいません)。

は、私が試した:

probarTrainingProgress.layout(getWidth()/2, getHeight()/2, getWidth()/2 + probarTrainingProgress.getWidth(), getHeight()/2 +probarTrainingProgress.getHeight()); 

が、無駄に。 ProgressBarのあちこち

probarTrainingProgress.setMax(currentAttackProgressNeeded); 
probarTrainingProgress.setProgress(currentAttackOverallStatistics); 
probarTrainingProgress.setProgressDrawable(getResources().getDrawable(R.drawable.barxp)); 
probarTrainingProgress.draw(attackCanvas); 

HERESに私のXMLコード:

<ProgressBar 
    android:id="@+id/probarTrainingProgress" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="100dp" 
    android:layout_height="50dp" 
    android:layout_margin="1dp" 
    android:indeterminate="false" 
    android:progressDrawable="@drawable/barxp" 
    android:visibility="gone"/> 

答えて

1
を描画する前に、まず Canvas.translateを使用して、キャンバスを移動

はここにキャンバスから私のコードです。あなたのコードは次のようになります:

canvas.save() 
canvas.translate(x, y) 
view.draw(canvas) 
canvas.restore() 
+0

こんにちは、ありがとうございます。これは解決策ではありません。なぜなら、私はこれを既に試していますし、b)スクリーンの中心には欲しくないので、キャンバスにどのように配置しようとしているのかを単に例証しています。プログラム上で進行状況バーを画面上の任意の位置に移動することはできないか、プログレスバーを浮動させて、たとえばビットマップに従うことさえできないようです。 – TBQPR

+0

多分私はあなたが何をしているのか誤解しています。ドローの目的は何ですか(attackCanvas)?後でキャンバスで何をしますか? – Hai

+0

とにかく、ビットマップを中央に配置しようとしている場合は、キャンバスを描画する前にCanvas.translateを使用してキャンバスを移動する必要があります。 – Hai

関連する問題