आप स्लाइडर का इस्तेमाल करके, स्क्रीन के निचले हिस्से में लोडिंग, प्रोग्रेस या नेविगेशन बार देख सकते हैं. स्लाइडर ग्लोबल UX कॉम्पोनेंट होते हैं और उन्हें अपने Glassware में लागू करते समय सावधानी बरतनी चाहिए.
स्क्रोलर स्लाइडर
स्क्रोलर स्लाइडर का इस्तेमाल करके, आप किसी कार्ड की जगह की जानकारी तब देते हैं, जब आप एक से ज़्यादा कार्ड से स्वाइप करते हैं. Slider.Scroller
का इस्तेमाल करके, इसी तरह का इफ़ेक्ट बनाया जा सकता है.
Slider.from()
का इस्तेमाल करके एक ऐसाSlider
बनाएं जो स्लाइडर दिखाने के लिएView
का इस्तेमाल करता है.startScroller()
का इस्तेमाल करकेSlider.Scroller
बनाएं और ज़्यादा से ज़्यादा और शुरुआती पोज़िशन सेट करें.
यहां एक आसान तरीके से बताया गया है, जो उपयोगकर्ता के टैप करने पर स्क्रोलर को अगली स्थिति पर ले जाता है:
public final class SliderActivity extends Activity {
private static final int MAX_SLIDER_VALUE = 5;
private static final long ANIMATION_DURATION_MILLIS = 5000;
private CardScrollView mCardScroller;
private Slider mSlider;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
// Create the cards for the view
mCardScroller = new CardScrollView(this);
mCardScroller.setAdapter(new CardAdapter(createCards()));
// Set the view for the Slider
mSlider = Slider.from(mCardScroller);
mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
processSliderRequest(position+1);
}
});
setContentView(mCardScroller);
}
private void processSliderRequest(position) {
Slider.Scroller scroller = mSlider.startScroller(MAX_SLIDER_VALUE, 0);
// Animate the slider to the next position. The slider
// automatically hides after the duration has elapsed
ObjectAnimator.ofFloat(scroller, "position", 0, position)
.setDuration(ANIMATION_DURATION_MILLIS)
.start();
}
}
ग्रेस पीरियड स्लाइडर
ग्रेस पीरियड स्लाइडर ऐसी गतिविधियों में काम करते हैं जिनसे उपयोगकर्ता को सूचना देखने में मदद मिलती हो. हालांकि, उपयोगकर्ता इंटरैक्शन की ज़रूरत नहीं होती. आप इस ऐनिमेशन को Slider.GracePeriod
में जाकर जोड़ सकते हैं.
Slider.from()
का इस्तेमाल करके एक ऐसाSlider
बनाएं जो स्लाइडर दिखाने के लिएView
का इस्तेमाल करता है.GracePeriod.Listener
बनाएं और उन इवेंट को मैनेज करने के लिए,onGracePeriodEnd()
औरonGracePeriodCancel()
लागू करें.Slider.GracePeriod
बनाएं और ऐनिमेशन शुरू करने के लिए,GracePeriod.Listener
कोstartGracePeriod()
तरीके में पास करें.- स्वाइप डाउन जेस्चर को मैनेज करने के लिए, गतिविधि के
onBackPressed()
को बदलें. - अगर उपयोगकर्ता नीचे की ओर स्वाइप करता है, तो स्लाइडर को खारिज करने के लिए
Slider.GracePeriod
परcancel()
को कॉल करें.
नीचे दिए गए उदाहरण में, ग्रेस पीरियड वाले स्क्रोलर को एक लिसनर के साथ सेट किया जाता है. यह पीरियड खत्म होने पर, कामयाबी की आवाज़ देता है. साथ ही, ग्रेस पीरियड का स्लाइडर रद्द होने पर, खारिज की गई आवाज़ सुनाई देती है:
public final class SliderActivity extends Activity {
...
private Slider.GracePeriod mGracePeriod;
private final GracePeriod.Listener mGracePeriodListener =
new GracePeriod.Listener() {
@Override
public void onGracePeriodEnd() {
// Play a SUCCESS sound to indicate the end of the grace period.
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.playSoundEffect(Sounds.SUCCESS);
mGracePeriod = null;
}
@Override
public void onGracePeriodCancel() {
// Play a DIMISS sound to indicate the cancellation of the grace period.
AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.playSoundEffect(Sounds.DISMISSED);
mGracePeriod = null;
}
};
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
// Create the cards for the view
mCardScroller = new CardScrollView(this);
mCardScroller.setAdapter(new CardAdapter(createCards()));
// Set the view for the Slider
mSlider = Slider.from(mCardScroller);
mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
mGracePeriod = mSlider.startGracePeriod(mGracePeriodListener);
}
});
setContentView(mCardScroller);
}
@Override
public void onBackPressed() {
// If the Grace Period is running,
// cancel it instead of finishing the Activity.
if (mGracePeriod != null) {
mGracePeriod.cancel();
} else {
super.onBackPressed();
}
}
}
स्लाइडर तय करें
तय करने वाले स्लाइडर का इस्तेमाल, किसी काम को पूरा होने की प्रगति दिखाने के लिए किया जाता है. आप Slider.Determinate
का इस्तेमाल करके, इस ऐनिमेशन को जोड़ सकते हैं.
Slider.from()
का इस्तेमाल करके एक ऐसाSlider
बनाएं जो स्लाइडर दिखाने के लिएView
का इस्तेमाल करता है.startScroller()
का इस्तेमाल करकेSlider.Determinate
बनाएं और ज़्यादा से ज़्यादा और शुरुआती पोज़िशन सेट करें.- जब ऐनिमेशन खत्म हो जाए, तो स्लाइडर को छिपाने के लिए,
Slider.Determinate
परhide()
तरीके को कॉल करें.
यहां एक आसान तरीके से बताया गया है, जिससे उपयोगकर्ता को टैप करने पर स्क्रोल करने की सुविधा सेट हो जाती है.
public final class SliderActivity extends Activity {
...
private Slider.Determinate mDeterminate;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
// Create the cards for the view
mCardScroller = new CardScrollView(this);
mCardScroller.setAdapter(new CardAdapter(createCards()));
// Set the view for the Slider
mSlider = Slider.from(mCardScroller);
mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
mDeterminate = mSlider.startDeterminate(MAX_SLIDER_VALUE, 0);
ObjectAnimator animator = ObjectAnimator.ofFloat(mDeterminate,
"position", 0, MAX_SLIDER_VALUE);
// Hide the slider when the animation stops.
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
mDeterminate.hide();
}
});
// Start an animation showing the different positions of the slider.
animator.setDuration(ANIMATION_DURATION_MILLIS).start();
}
});
setContentView(mCardScroller);
}
}
कोई तय स्लाइडर नहीं
अनिश्चित स्लाइडर का इस्तेमाल उन स्क्रीन को लोड करने के लिए किया जा सकता है जहां काम का
पूरा होना मुश्किल होता है. आप इस ऐनिमेशन को Slider.Indeterminate
में जाकर जोड़ सकते हैं.
Slider.from()
का इस्तेमाल करके एक ऐसाSlider
बनाएं जो स्लाइडर दिखाने के लिएView
का इस्तेमाल करता है.- ऐनिमेशन को
Slider.startIndeterminate()
तरीके से शुरू करें. - ऐनिमेशन बंद करने के लिए,
Slider.Indeterminate
परhide()
वाले तरीके को कॉल करें.
यहां एक आसान तरीके से लागू किया जा सकता है. जब उपयोगकर्ता, कार्ड पर टैप करता है, तो यह एक अमान्य स्क्रोलर बनाता है और दोबारा टैप करने पर उसे छिपा देता है:
public final class SliderActivity extends Activity {
...
private Slider.Indeterminate mIndeterminate;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
// Create the cards for the view
mCardScroller = new CardScrollView(this);
mCardScroller.setAdapter(new CardAdapter(createCards()));
// Set the view for the Slider
mSlider = Slider.from(mCardScroller);
mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// Toggle between showing/hiding the indeterminate slider.
if (mIndeterminate != null) {
mIndeterminate.hide();
mIndeterminate = null;
} else {
mIndeterminate = mSlider.startIndeterminate();
}
});
setContentView(mCardScroller);
}
}