how to make scrollable button in android
Hello i'm trying to make an equalizer for my app but i can't figure out how to make the buttons. I don't really know how to explain myself so here is a picture that reveals more than my words:
Do i need animations? Can you guys point me in the right direction?
Thanks 开发者_JS百科in advance.
There's a nice tutorial here for creating an odometer widget. It's not at all the look you want, but many (most) of the same issues apply, including custom rendering, dealing with touch events, and wiring up a series of sub-widgets into a larger control. It's the first thing I thought of when I saw your graphic.
This is simple vertical seekBar....
public class SimpleVerticalSeekBar extends SeekBar {
public SimpleVerticalSeekBar(Context context) {
super(context);
}
public SimpleVerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public SimpleVerticalSeekBar(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:
setProgress(getMax() - (int) (getMax() * event.getY() / getHeight()));
onSizeChanged(getWidth(), getHeight(), 0, 0);
break;
case MotionEvent.ACTION_CANCEL:
break;
}
return true;
}
}
I think you mean a SeekBar. It's the JSlider of Android.
精彩评论