Muszę narysować linię 3dp do przedstawienia poziomu w grze quizów.Jak programowo utworzyć lub zmienić rysowanie z linii o różnych kolorach
Linia musi składać się z 2 kolorów. Na przykład, jeśli użytkownik ukończy 40% poziomu, linia będzie czerwona dla pierwszych 40% linii, a pozostałe 60% z szarości.
udało mi się zrobić z rozciągliwej:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="line" >
<size android:height="3dp" android:width="40dp"/>
<stroke
android:width="1dp"
android:color="#FFFC10" />
</shape>
</item>
<item android:left="40dp">
<shape android:shape="line" >
<size android:height="3dp" android:width="60dp" />
<stroke
android:width="1dp"
android:color="#DDDDDD" />
</shape>
</item>
</layer-list>
a potem wyświetlić go z ImageView:
<ImageView
android:id="@+id/row_completion_bar"
android:src="@drawable/completion_bar"
android:layout_width="100dp"
android:layout_height="3dp" />
... ale teraz muszę oczywiście być w stanie zmień tę zależność 40%/60% w zależności od ukończenia użytkownika actuel.
Pierwsze pytanie: jaki jest najlepszy najbardziej wydajny sposób na zrobienie tego? Zmienić losowanie w czasie wykonywania? lub utworzyć nowy program do rysowania w środowisku wykonawczym w Javie?
Drugie pytanie: jak to zrobić? Próbowałem obu sposobów (odtworzyć ten rozciągliwej w kodzie Java/zmieniać rozciągliwej xml w czasie wykonywania) i nie udało :-(
Każda pomoc będzie mile widziana.
chciałbym utworzyć niestandardową rozciągliwej jak ten klasy LineDrawable rozciąga rozciągliwej {.... – pskink
Dziękuję za odpowiedź. Jak byś to zrobił dokładnie? –
po prostu zastąp wszystkie abstrakcyjne metody Drawable - draw (Canvas) w szczególności – pskink