2015-06-29 3 views
0

Мне нужно создать пользовательскую вертикальную панель прогресса, как показано на рисунке ниже. Он должен иметь круг в начале и стрелку в конце.Пользовательская вертикальная панель прогресса в Android

enter image description here

Что бы быть лучшим способом для достижения этой цели? Я не эксперт по дизайну, поэтому я не знаю, было бы проще, если бы вы использовали файл 9png или создали мой собственный класс или другие параметры.

Я пробовал со следующим репо https://github.com/halzhang/Android-VerticalProgressBar, но это только вращает ProgressBar, он не может применять пользовательский вид, как мне нужно.

+0

попробовать это https://github.com/halzhang/Android-VerticalProgressBar – Kartheek

+0

@Kartheek Я уже пробовал с этим. Выполнение вертикального шага прогресса не сложно, сложная часть - это замысловатый за ним. – David

ответ

0

Наконец, я создал пользовательский вид, простирающийся от View класса и я перекрываться OnDraw метода, рисуя линию, круг и треугольник.

Проверьте следующий код:

@Override 
protected synchronized void onDraw(Canvas canvas) { 
    mPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
    mPaint.setColor(getResources().getColor(R.color.grey_300)); 
    mPaint.setStrokeWidth(STROKE_WIDTH); 
    mPaint.setAntiAlias(true); 

    canvas.drawLine(centerX, MARGIN, centerX, getHeight() - MARGIN, mPaint); 

    canvas.drawCircle(centerX, MARGIN, STROKE_WIDTH, mPaint); 

    mPath.reset(); 
    mPath.moveTo(0, STROKE_WIDTH * 2); 
    mPath.lineTo(-STROKE_WIDTH, 0); 
    mPath.lineTo(STROKE_WIDTH, 0); 
    mPath.close(); 
    mPath.offset(centerX, getHeight() - TOP_BOTTOM_MARGIN - STROKE_WIDTH); 
    canvas.drawPath(mPath, mPaint); 
} 
Смежные вопросы