Мне нужно нарисовать линию 3dp, чтобы представить завершение уровня в игре с quizz.Как программно создавать или изменять чертежи из линий разных цветов
Эта линия должна быть двух цветов. Например, если пользователь выполнил 40% уровня, линия будет красной для первых 40% линии, остальные 60% будут серыми.
мне удалось сделать это с растяжимой:
<?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>
А затем отобразить его с ImageView:
<ImageView
android:id="@+id/row_completion_bar"
android:src="@drawable/completion_bar"
android:layout_width="100dp"
android:layout_height="3dp" />
... но теперь, я, конечно, должны быть в состоянии измените этот рацион 40%/60% в зависимости от завершения действия пользователя.
Первый вопрос: какой лучший наиболее эффективный способ сделать это? Измените вытягиваемый во время выполнения? или создать новую версию во время выполнения в Java?
Второй вопрос: как это сделать? Я попробовал оба пути (воссоздать эту вытяжку в Java коде/изменить XML вытяжку во время выполнения) и не удался :-(
Любой помощь будет высоко оценен.
я бы создать пользовательский вытяжке, как этот класс LineDrawable расширяет Drawable {.... – pskink
Спасибо за ваш ответ. Как бы вы это сделали? –
просто переопределить все абстрактные методы Drawable - рисовать (Canvas) в частности – pskink