web-dev-qa-db-fra.com

Comment faire une double barre de recherche dans Android?

Je construis une application Android où l'utilisateur sélectionne la valeur maximale par barre de recherche.

J'ai besoin d'un autre bouton sur la même barre de recherche pour que l'utilisateur puisse sélectionner la valeur maximale et minimale dans une barre de recherche unique particulière.

Voici mon code de barre de recherche unique -

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

}
}

Voici mon code xml de barre de recherche -

<?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>
12
Hitesh Matnani

La bibliothèque de classes de widgets Android Android n'a qu'un seul contrôle de curseur, barre de recherche avec un seul contrôle de pouce. A fait des recherches en ligne et a trouvé ce widget personnalisé cool, plage-barre de recherche.

vous pouvez suivre l'un des ci-dessous

https://github.com/edmodo/range-bar

https://code.google.com/p/range-seek-bar/

https://github.com/Larpon/RangeSeekBar

11
Thirumoorthy

Personnalisez entièrement la barre de recherche bidirectionnelle et unidirectionnelle, vous pouvez fournir la couleur du pouce, etc. http://codingsignals.com/crystal-range-seekbar-in-Android/

Ajoutez votre 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"/>
13
Asif

enter image description here

De ici

        <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) {
        }
    });
4
Nilesh Savaliya

Vous n'avez pas besoin d'utiliser deux barres de recherche, mais vous pouvez simplement faire la même fonction de minimum et de maximum en utilisant une seule barre de recherche avec deux pouces dessus. Voici une bibliothèque que vous pouvez utiliser https://code.google .com/p/barre de recherche de plage /

Vous pouvez utiliser en utilisant le code ci-dessous

private final Thumb getClosestThumb(float touchX)

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

Et dans le "public booléen onTouchEvent (événement MotionEvent)",

if(pressedThumb == null),
pressedThumb = getClosestThumb(mDownMotionX);
2
Kirtikumar A.

RangeSeekBar https://github.com/RanaRanvijaySingh/RangeSeekBar . Il existe également d'autres bibliothèques disponibles qui offrent beaucoup de personnalisation. Si vous souhaitez opter pour une conception plus interactive, recherchez Barre de plage de matériaux http://Android-arsenal.com/details/1/1272 . enter image description here

0