Reputation: 215
I am working on an android app and trying to create a custom horizontal SeekBar.Its working but showing vertical SeekBar.I am sharing my code .Let me know how to change the orientation of the SeekBar. Please help if possible.
Java File for custom Seeking bar ::
package android.widget;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
public class HSeekBar extends SeekBar {
public HSeekBar(Context context) {
super(context);
}
public HSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public HSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(h, w, oldh, oldw);
}
@Override
protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(heightMeasureSpec, widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
}
protected void onDraw(Canvas c) {
c.rotate(90);
c.translate(getHeight(),0);
super.onDraw(c);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (!isEnabled()) {
return false;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
int i=0;
i=getMax() - (int) (getMax() * event.getY() / getHeight());
setProgress(i);
Log.i("Progress",getProgress()+"");
onSizeChanged(getWidth(), getHeight(), 0, 0);
break;
case MotionEvent.ACTION_CANCEL:
break;
}
return true;
}
}
Xml file
<android.widget.HSeekBar
android:id="@+id/hbar"
android:layout_width="wrap_content"
android:layout_height="250dip"
android:max="200"
android:progress="0"
android:progressDrawable="@drawable/style"
android:thumb="@drawable/thumb_image" />
</LinearLayout>
Upvotes: -1
Views: 988
Reputation: 219
<SeekBar
android:id="@+id/value"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:rotation="90"
android:max="100" />
Just using "android:rotation="90"" or android:rotationX or android:rotationY to get rotation for seekbar
Upvotes: 1