你好,我正在尝试为我的应用制作一个均衡器,但我无法弄清楚如何制作按钮。我真的不知道该如何解释自己,所以这里是揭示比我的话更图片: 如何在android中制作可滚动按钮
我是否需要动画?你们能否指引我朝着正确的方向发展?
在此先感谢。
你好,我正在尝试为我的应用制作一个均衡器,但我无法弄清楚如何制作按钮。我真的不知道该如何解释自己,所以这里是揭示比我的话更图片: 如何在android中制作可滚动按钮
我是否需要动画?你们能否指引我朝着正确的方向发展?
在此先感谢。
我认为你的意思是SeekBar。这是Android的JSlider。
正是我在找的东西。非常感谢 – madcoderz 2011-05-16 19:27:08
@Ted我发现[This older](http://stackoverflow.com/questions/631238/modifying-the-android-seekbar-widget-to-operate-vertically)主题具有相同的问题。 – 2011-05-16 19:50:38
是的,该线程上的建议还需要一个自定义小部件。我认为这会比尝试子类化SeekBar并强制它垂直操作要容易得多。 – 2011-05-16 19:59:11
这是简单的垂直搜索栏....
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;
}
}
在我看来,你需要创建扩展的ImageButton或imageview的按钮自定义视图和处理触摸事件。这是第一个新手想法。 – 2011-05-16 19:12:31
@Madcoderz:我想在我的应用程序中创建一个音乐均衡器。可以帮助我。 – AB1209 2013-06-12 17:51:54