0
私はアークSeekBar
を持っていて、の親指に従うようにTextView
を作ろうとしているアプリを作っています。TextviewがSeekbarに従っていない
マイコード:
seekBar = (ArcSeekBar)findViewById(R.id.seekArc);
textView = (TextView)findViewById(R.id.myText);
seekBar.setOnSeekArcChangeListener(new ArcSeekBar.OnSeekArcChangeListener() {
@Override
public void onProgressChanged(ArcSeekBar seekArc, int progress, boolean fromUser) {
int x = seekBar.getmTranslateX() - seekBar.getmThumbXPos()-100;
int y = seekBar.getmTranslateY() - seekBar.getmThumbYPos()-100;
textView.setX(x);
textView.setY(y);
textView.setText(String.valueOf(progress));
}
@Override
public void onStartTrackingTouch(ArcSeekBar seekArc) {
}
@Override
public void onStopTrackingTouch(ArcSeekBar seekArc) {
}
});
そして、どのように私はシークバーXとY位置をmeeassure。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
final int height = getDefaultSize(getSuggestedMinimumHeight(),
heightMeasureSpec);
final int width = getDefaultSize(getSuggestedMinimumWidth(),
widthMeasureSpec);
final int min = Math.min(width, height);
float top = 0;
float left = 0;
int arcDiameter = 0;
mTranslateX = (int) (width * 0.5f);
mTranslateY = (int) (height * 0.5f);
arcDiameter = min - getPaddingLeft();
mArcRadius = arcDiameter/2;
top = height/2 - (arcDiameter/2);
left = width/2 - (arcDiameter/2);
mArcRect.set(left, top, left + arcDiameter, top + arcDiameter);
int arcStart = (int) mProgressSweep + mStartAngle + mRotation + 90;
mThumbXPos = (int) (mArcRadius * Math.cos(Math.toRadians(arcStart)));
mThumbYPos = (int) (mArcRadius * Math.sin(Math.toRadians(arcStart)));
setTouchInSide(mTouchInside);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
結果は次のとおりです。
任意のアイデア?私はテキストが常に親指の上にあることを望む。
あなたは、コードの例を共有することができますより大きくなければなりませんか? –