2016-04-09 10 views
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); 
    } 

結果は次のとおりです。

enter image description here

任意のアイデア?私はテキストが常に親指の上にあることを望む。

答えて

2

the scope of the element

のyoutは、中心点を持っている必要があります。そして、TextViewの円の大きさは、他のサークル

enter image description here

+0

あなたは、コードの例を共有することができますより大きくなければなりませんか? –

関連する問題