お世話になります。
掲題の件、垂直seekbarを作成したく
以下URLを参考にしたのですが、
setSeekbarで中央に合わせた際に
線とつまみがずれてしまいます。
(線は中央まで伸びているが、つまみが下に位置する。)
つまみを動かすと、その後は線とつまみが一致するようになるのですが
初期状態としてなんだか気持ち悪いです。
参照URL:
http://www.cnblogs.com/mengdd/archive/2013/04/08/3008482.html
リンク内容
つきましては初期状態でも線とつまみを一致させる方法につきまして
ご教授いただけますようお願いいたします。
###参考画像
###VerticalSeekbar.java
public class VerticalSeekbar extends SeekBar { public VerticalSeekbar(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public VerticalSeekbar(Context context, AttributeSet attrs) { super(context, attrs); } public VerticalSeekbar(Context context) { super(context); } @Override 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()); } @Override protected synchronized void onDraw(Canvas canvas) { canvas.rotate(-90); canvas.translate(-getHeight(), 0); super.onDraw(canvas); } @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; } }
###activity_main.xml 抜粋!
<VerticalSeekbar android:id="@+id/VerticalSeekbar" android:layout_width="wrap_content" android:layout_height="150dp" android:progressDrawable="@drawable/progress" android:thumb="@drawable/thumb" android:layout_above="@id/LL" />
MainActivity.java 抜粋
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); VerticalSeekbar = (VerticalSeekbar) findViewById(R.id.VerticalSeekbar); } @Override public void onResume(){ VerticalSeekbar.setMax(4); VerticalSeekbar.setProgress(2); super.onResume(); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/13 08:56
2016/06/13 09:31
2016/06/15 13:20