Я создал холст в android, который успешно рисует графику, с которой я работаю. Я хотел представить индикатор прогресса, чтобы обновить игрока по их прогрессу. До сих пор Ii удалось создать индикатор выполнения, как было разработано, и даже обновить pb.setProgress.Progress Bar: установить местоположение/позицию в Canvas
Моя проблема заключается в том, что индикатор выполнения отображается в верхнем левом углу, и я хочу переместить его в центр. Я не могу найти поддержку для ProgressBar (я могу для ProgressDialog, но я не хочу этого).
Я пробовал:
probarTrainingProgress.layout(getWidth()/2, getHeight()/2, getWidth()/2 + probarTrainingProgress.getWidth(), getHeight()/2 +probarTrainingProgress.getHeight());
, но безрезультатно.
Вот мой код из холста:
probarTrainingProgress.setMax(currentAttackProgressNeeded);
probarTrainingProgress.setProgress(currentAttackOverallStatistics);
probarTrainingProgress.setProgressDrawable(getResources().getDrawable(R.drawable.barxp));
probarTrainingProgress.draw(attackCanvas);
Heres мой XML код сюда в ProgressBar:
<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"/>
Привет, Спасибо за вашу идею. Это не решение, потому что: а) я уже пробовал это, и б) я не хочу, чтобы он находился в центре экрана, я просто рассматриваю, как я пытался расположить его на холсте. Кажется маловероятным, что я не могу программно перемещать индикатор выполнения в любую позицию на экране или даже плавать индикатор выполнения, скажем, следовать растровому изображению. – TBQPR
Возможно, я не понимаю, что вы после. Какова цель рисования (attackCanvas)? Что вы делаете с холстом впоследствии? – Hai
В любом случае, предполагая, что вы пытаетесь центрировать в растровом изображении, вы должны использовать Canvas.translate для перемещения холста до его рисования. – Hai