2014-11-10 5 views
6

Ich baue eine Android-Anwendung, wo der Benutzer den maximalen Wert von Suchleiste auswählen.Wie Doppel-Suchleiste in Android machen?

Ich brauche eine andere Schaltfläche auf der gleichen Suchleiste, so dass Benutzer maximalen und minimalen Wert aus einer bestimmten eindeutigen Suchleiste auswählen können.

Hier ist mein Code einzelner Bar suchen -

package com.ui.yogeshblogspot; 

public class CustomSeekBarExActivity extends Activity implements OnSeekBarChangeListener{ 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
SeekBar bar=(SeekBar)findViewById(R.id.seekBar1); 
bar.setOnSeekBarChangeListener(this); 
} 

@Override 
public void onProgressChanged(SeekBar seekBar, int progress, 
     boolean fromUser) { 
    // TODO Auto-generated method stub 
    TextView tv=(TextView)findViewById(R.id.textView2); 
    tv.setText(Integer.toString(progress)+"%"); 

} 

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

} 

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

} 
} 

Hier mein xml-Code ist bar suchen -

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:background="#FFFFFF"> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Choose Your Progress" 
    android:textColor="#000000" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<SeekBar 
    android:id="@+id/seekBar1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:progressDrawable="@xml/progress" 
    android:max="100" 
    android:thumb="@xml/thumb"/> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#000000" 
    android:gravity="center" 
    android:layout_gravity="center" 
    android:paddingTop="10dp" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

</LinearLayout> 
+0

https://github.com/Larpon/RangeSeekBar überprüfen diese Ansicht – Andy

+0

@Andy THanks das ist die ganze Funktion wie kann ich diesen Code auf Aktivität hinzufügen. Wie dieser Code verwendet werden kann, bitte hilf mir !! –

+0

Die von ihm gepostete Bibliothek enthält Beispielcode. Du solltest es lesen. –

Antwort

2

Sie brauchen nicht zwei seekbar zu verwenden, aber Sie können nur das tun, die gleiche Funktion von Minimum und Maximum durch Verwendung nur einer Suchleiste mit zwei Daumen darüber Hier ist eine Bibliothek, die Sie verwenden können https://code.google.com/p/range-seek-bar/

Sie können usin verwenden g Code unten

private final Thumb getClosestThumb(float touchX) 

{ 
double xValue = screenToNormalized(touchX);   
return (Math.abs(xValue - normalizedMinValue) < Math.abs(xValue - normalizedMaxValue)) ? Thumb.MIN : Thumb.MAX; 
} 

Und in der "public boolean onTouchEvent (Motion event)",

if(pressedThumb == null), 
pressedThumb = getClosestThumb(mDownMotionX); 
+0

danke das ist ein Code oder eine Bibliothek können Sie mir bitte im Detail helfen, wie ich neu bin .... –

+0

das ist Bibliothek für seekbar –

9

vollständig anpassen Zweiweg und einzelne Art und Weise Suchleiste Sie Daumen Farbe usw. http://codingsignals.com/crystal-range-seekbar-in-android/

Fügen Sie in Ihrem gradle

dependencies { 
compile 'com.crystal:crystalrangeseekbar:1.0.0' 
} 

Two way seekbar

<com.crystal.crystalrangeseekbar.widgets.BubbleThumbRangeSeekbar 
android:id="@+id/rangeSeekbar5" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
app:corner_radius="10" 
app:min_value="0" 
app:max_value="100" 
app:steps="5" 
app:bar_color="#F7BB88" 
app:bar_highlight_color="#E07416" 
app:left_thumb_image="@drawable/thumb" 
app:right_thumb_image="@drawable/thumb" 
app:left_thumb_image_pressed="@drawable/thumb_pressed" 
app:right_thumb_image_pressed="@drawable/thumb_pressed" 
app:data_type="_integer"/> 
+0

Diese Bibliothek ist nützlich.Aber können Sie bitte sagen, wie man den Anfangswert einstellt? Ich meine, zunächst sollten beide Punkte irgendwann erreichen. –

3

enter image description here

zur Verfügung stellen kann

Von Here

 <com.appyvet.rangebar.RangeBar 
      xmlns:custom="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/SearchrangeSeekbarAge" 
      android:layout_width="match_parent" 
      android:layout_height="72dp" 
      custom:tickStart="18" 
      custom:tickInterval="1" 
      custom:tickEnd="70" /> 


     <com.appyvet.rangebar.RangeBar 
      xmlns:custom="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/SearchrangeSeekbarHeight" 
      android:layout_width="match_parent" 
      android:layout_height="72dp" 
      custom:tickStart="4.5" 
      custom:tickInterval="0.10" 
      custom:tickEnd="7.0" /> 


rangebar.setOnRangeBarChangeListener(new RangeBar.OnRangeBarChangeListener() { 
     @Override 
     public void onRangeChangeListener(RangeBar rangeBar, int leftPinIndex, 
       int rightPinIndex, 
       String leftPinValue, String rightPinValue) { 
     } 
    }); 
+0

Die beste Option – blueware