2011-11-17 49 views
1

我正在搜索條中的Android,其最大值爲12如何在android中爲每個seekbar間隔設置文本?

<SeekBar 
    android:id="@+id/seekBar1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/mapview" 
    android:layout_alignParentLeft="true" 
    android:layout_marginBottom="32dp" 
    android:max="12" 
    android:progress="0" 
    android:layout_marginTop="60dp" 
    android:secondaryProgress="0" /> 

我必須設置文本像1,2,3,4 .... 12我的XML設計下面對應的搜索條確切的時間間隔?如何實現這一目標?

回答

1

請使用下面的代碼

<seek bar object>.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
      { 

       @Override 
       public void onProgressChanged(SeekBar arg0, int arg1, 
         boolean arg2) { 
        // TODO Auto-generated method stub 
        int mCurrentValue = arg1 + mMinValue; 
        text.setText(Integer.toString(mCurrentValue)); 
       } 

       @Override 
       public void onStartTrackingTouch(SeekBar arg0) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onStopTrackingTouch(SeekBar arg0) { 
        // TODO Auto-generated method stub 

       } 

      }); 
2

首先,你得到你SeekBar參考:

SeekBar bar = (SeekBar) findViewById(R.id.seekBar1); 
bar.setOnSeekBarChangedListener(new OnSeek()); 

接下來創建一個實現OnSeekBarChangedListener的私有類:

private class OnSeek implements OnSeekBarChangeListener { 
    public void onProgressChanged(SeekBar seekBar, int progress, 
            boolean fromUser) { 
     //Here is where you handle the change in the seekbar e.g. 
     myTextView.setText("You are at stage: " + progress);  
    } 

    public void onStartTrackingTouch(SeekBar seekBar) { 
     //No need to do stuff here 
    } 

    public void onStopTrackingTouch(SeekBar seekBar) { 
     //No need to do stuff here 
    } 
    } 
0
package com.example.test_project; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.util.AttributeSet; 
import android.widget.SeekBar; 

public class CustomSeekBar extends SeekBar{ 
Paint paint; 
int heigth; 
int width; 
int interval; 
int Startpoint; 
int StartingPoint; 
int EndingPoint; 
int Differnce; 
private boolean StartUp; 
    public CustomSeekBar(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     paint=new Paint(); 
     paint.setColor(Color.BLACK); 
     paint.setTextSize(30.0f); 
     StartUp=false; 

    } 
    public void IntializeValue(int startingPoint,int endingPoint,int difference) 
    { 
     this.StartingPoint=startingPoint; 
     this.EndingPoint=endingPoint; 
this.Differnce=difference; 
setProgress(2); 
setMax(12); 
    } 

    @Override 
     protected void onSizeChanged(int w, int h, int oldw, int oldh) { 
      heigth=h; 
      width=w; 
      int parts=(EndingPoint/Differnce); 
      interval=width/parts; 
      System.out.println("111 width is "+width); 
      System.out.println("111 heigth is "+heigth); 
      System.out.println("111 interval is "+interval); 
      super.onSizeChanged(w, h, oldw, oldh); 
     } 

    @Override 
    protected synchronized void onDraw(Canvas canvas) { 
     // TODO Auto-generated method stub 
     int diff=10; 
      System.out.println("ondraw 2"); 
      int tempPoint=StartingPoint; 
      canvas.drawLine(Startpoint,15,width,15,paint); 
      canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     canvas.drawText(tempPoint+"", Startpoint,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     diff=10; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 
     tempPoint+=Differnce; 
     canvas.drawText(tempPoint+"", Startpoint-diff,heigth, paint); 
     canvas.drawLine(Startpoint,5,Startpoint,25,paint); 
     Startpoint+=interval; 

     super.onDraw(canvas); 
     Startpoint=0; 
     System.out.println("ondraw"); 
    } 

} 
+0

歡迎至 堆棧溢出!最好用你的答案發表一些解釋,特別是如果已經有一個被接受的答案。 – durron597

相關問題