lundi 29 décembre 2014

How To Set Seek-Bar Value


Vote count:

0




In my application I've customized multiple color SeekBar .But unable to set value(0,20,40) like this .Here is My Desire out put .


enter image description here


Here is my Xml



<com.amiyo.CustomSeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="5"
android:progressDrawable="@android:color/transparent"
android:thumb="@drawable/slider_thumb"
android:thumbOffset="6dp"
android:layout_gravity="center"
/>


Java Class. Oncreate Method



SeekBar = ((CustomSeekBar) findViewById(R.id.seekBar));

progressItemList = new ArrayList<ProgressItem>();

// blue span
mProgressItem = new ProgressItem();
mProgressItem.progressItemPercentage = (blueSpan / totalSpan) * 100;
mProgressItem.color = R.color.blue;
progressItemList.add(mProgressItem);

// green span
mProgressItem = new ProgressItem();
mProgressItem.progressItemPercentage = ((greenSpan / totalSpan) * 100);
mProgressItem.color = R.color.green;
progressItemList.add(mProgressItem);

mProgressItem = new ProgressItem();
mProgressItem.progressItemPercentage = (yellowSpan / totalSpan) * 100;
mProgressItem.color = R.color.yellow;
progressItemList.add(mProgressItem);

SeekBar.initData(progressItemList);
SeekBar.invalidate();
}
}


Here is CustomSeekBar Class



public class CustomSeekBar extends SeekBar {

private ArrayList<ProgressItem> mProgressItemsList;

public CustomSeekBar(Context context) {
super(context);
}

public CustomSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}

public CustomSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

public void initData(ArrayList<ProgressItem> progressItemsList) {
this.mProgressItemsList = progressItemsList;
}

@Override
protected synchronized void onMeasure(int widthMeasureSpec,
int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

protected void onDraw(Canvas canvas) {
if (mProgressItemsList.size() > 0) {
int progressBarWidth = getWidth();
int progressBarHeight = getHeight();
int thumboffset = getThumbOffset();
int lastProgressX = 0;
int progressItemWidth, progressItemRight;
for (int i = 0; i < mProgressItemsList.size(); i++) {
ProgressItem progressItem = mProgressItemsList.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 == mProgressItemsList.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);
}

}

}


Here is Output . How to set value 0,20,40 ?


enter image description here


Any help would be greatly appreciated.



asked 1 min ago







How To Set Seek-Bar Value

Aucun commentaire:

Enregistrer un commentaire