2014-01-27 4 views
0

Я ищу способ сделать эффект заполнения бара на Android. У меня есть FrameLayout под названием progressBar, и внутри этого FrameLayout есть LinearLayout под названием filledBar. Я не знаю буквальной ширины либо progressBar, либо filledBar, но я бы хотел, чтобы filledBar занял определенную сумму progressBar. Как мне это сделать? (Я создаю оба бара программно)Продвинутый штрих калибровки Android

+0

Почему вы не используете progressBar https://developer.android.com/reference/android/widget/ProgressBar.html? – Budius

+0

@Budius Я ищу, чтобы иметь возможность добавлять к нему текст и стиль его более независимо –

+0

, по моему опыту, возможно, было бы легче создать пользовательский вариант и использовать его в качестве фона представления. – Budius

ответ

1

довольно просто, сделать макет XML, как это:

FrameLayout 
    View // background set to be a custom drawable 
    TextView // gravity right 

в коде вы надуть и установить вытяжке:

private CustomDrawable drawable; 

drawable = new CustomDrawable(context); 
View v = layout.findViewById(... 
v.setBackground(drawable); 

затем обновить %

drawable.setLevel(10); // for 10% for example 

При создании пользовательского метода drawble внутри метода рисования это простой вызов в DrawRect

{ 

canvas.drawRect(0, 0, getLevel()/100*canvas.getWidth(), canvas.getHeight, paint); 

} 

paint вы создаете с цветом вы хотите быть.

Это очень грубая идея, но я надеюсь, что этого достаточно, чтобы вести вас в правильном направлении.

+0

Мне не удается заставить эту работу работать. Холст, кажется, не рисует. –

Смежные вопросы