Прежде всего, я прошу прощения за плохое обращение с Engli sh, я использую Google Translate, мне нужна помощь с чем-то, что я считаю базовым c, но я не знаю предмет, мне нужно правильно добавить радиус угла в этом стиле android, но, к сожалению, я делаю это неправильно, и он выглядит следующим образом:
border_custom_progressbarr. xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
</shape>
</item>
</layer-list>
мой контент:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".pruebas"
tools:showIn="@layout/activity_pruebas">
<com.example.brasa.component.CustomProgressBar
android:id="@+id/seekBar"
android:layout_width="0dp"
android:layout_height="30dp"
android:max="100"
android:progress="0"
android:layout_marginHorizontal="15dp"
android:layout_centerInParent="true"
android:progressDrawable="@drawable/border_custom_progressbar"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
</android.support.constraint.ConstraintLayout>
мой пользовательский класс ProgressBar:
package com.example.brasa.component;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.SeekBar;
import com.example.brasa.dto.ProgressItem;
import java.util.ArrayList;
public class CustomProgressBar extends android.support.v7.widget.AppCompatSeekBar {
private ArrayList<ProgressItem> mProgresItemList;
public CustomProgressBar(Context context){
super(context);
mProgresItemList = new ArrayList<ProgressItem>();
}
public CustomProgressBar(Context context, AttributeSet attrs){
super(context, attrs);
}
public CustomProgressBar(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}
public void initData( ArrayList<ProgressItem> mProgresItemList){
this.mProgresItemList = mProgresItemList;
}
@Override
protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
protected void onDraw(Canvas canvas) {
if (mProgresItemList.size() > 0) {
int progressBarWidth = getWidth();
int progressBarHeight = getHeight();
int thumboffset = getThumbOffset();
int lastProgressX = 0;
int progressItemWidth, progressItemRight;
for (int i = 0; i < mProgresItemList.size(); i++) {
ProgressItem progressItem = mProgresItemList.get(i);
Paint progressPaint = new Paint();
progressPaint.setColor(getResources().getColor(
progressItem.color));
progressItemWidth = (int) (progressItem.progressItemPercentage
* progressBarWidth / 100);
progressItemRight = lastProgressX + progressItemWidth;
// for last item give right to progress item to the width
if (i == mProgresItemList.size() - 1
&& progressItemRight != progressBarWidth) {
progressItemRight = progressBarWidth;
}
Rect progressRect = new Rect();
progressRect.set(lastProgressX, thumboffset / 2,
progressItemRight, progressBarHeight - thumboffset / 2);
canvas.drawRect(progressRect, progressPaint);
lastProgressX = progressItemRight;
}
super.onDraw(canvas);
}
}
}
и наконец мой класс ProgressItem.class:
package com.example.brasa.dto;
public class ProgressItem {
public int color;
public float progressItemPercentage;
public ProgressItem(){
}
public ProgressItem(int color, float progressItemPercentage){
this.color = color;
this.progressItemPercentage = progressItemPercentage;
}
public int getColor() {
return color;
}
public void setColor(int color) {
this.color = color;
}
public float getProgressItemPercentage() {
return progressItemPercentage;
}
public void setProgressItemPercentage(float progressItemPercentage) {
this.progressItemPercentage = progressItemPercentage;
}
}
Кто-нибудь может мне помочь, пожалуйста?