2013-05-15 5 views
10

मेरे पास एक अनुकूलित खोजबार है जिसमें ध्वनि की प्रगति और अधिकतम आयाम अद्यतन हो रहा है। तो खोजबार ध्वनि पहचान के अनुसार भिन्न होता है और अंगूठे ध्वनि की अधिकतम मात्रा दिखाता है। मैं अंगूठे की स्थिति को एक विशेष स्थिति (अधिकतम Amblitude) में सेट करना चाहता हूं जैसे कि हम तलाशबार में प्रगति सेट करते हैं। मैं प्रश्नों और उत्तरों के भार से गुजर चुका था और मैं डेवलपर दस्तावेज़ों के माध्यम से भी भाग गया था। डेवलपर दस्तावेज़ों में इसका उल्लेख है कि केवल ऑफसेट को दिया जा सकता है जो अंगूठे को प्रगति के ट्रैक से रोकता है।प्रोग्रामिंग के लिए तलाशने के लिए अंगूठे को किसी विशेष स्थिति (ऑफसेट नहीं) पर सेट करना?

डेवलपर डॉक्टर setThumbOffset (पूर्णांक thumbOffset) से - सेट अंगूठे ऑफसेट कि अंगूठे ट्रैक की सीमा से बाहर का विस्तार करने की अनुमति देता है।

क्या अंगूठे को किसी विशेष स्थिति में सेट करने का कोई संभावित तरीका है। नमूना नीचे दिखाया गया है। इस में मैंने केवल नमूना दिखाने के लिए अंगूठे ऑफसेट सेट कर दिए थे, इसके बजाय मैं अंगूठे को सटीक स्थिति में सेट करना चाहता हूं।

enter image description here

उत्तर

2

मैं तुम्हें setProgress (पूर्णांक प्रगति) का उपयोग अंगूठे की स्थिति सेट कर सकता है, के लिए seekbar में, अंगूठे प्रगति मीटर के अंत में दिखाया जाएगा लगता है।
यदि आप अंगूठे की स्थिति को प्रगति के लिए स्वतंत्र सेट करना चाहते हैं, तो आप अपना खुद का सेकरबार लागू कर सकते हैं AbsSeekBar, आप SeekBar के src को देख सकते हैं।

+0

हाँ कुछ AbsSeekbar के साथ अपने संभव दिखा पोस्ट में आए, लेकिन आप कर सकते हैं आपका दिन कैसा मुझे इसका उपयोग करके लागू किए गए किसी भी स्रोत के बारे में बताएं। –

+0

@SreedevR आप यहां AbsSeekbar के स्रोत पर एक नज़र डाल सकते हैं: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/ AbsSeekBar.java # AbsSeekBar यह जानने के लिए कि अंगूठे कैसे खींचा जाता है और कैसे पोस्टियन सेट किया जा रहा है। – Bolton

+0

@ श्रीदेव आर सटीक स्थिति का अर्थ छवि में दिखाया गया है ..?? वास्तविक प्रक्रिया से थोड़ा दूर? – TheFlash

1

पारदर्शी प्रगति रंग के साथ custom progress bar बनाएं।

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@android:id/background" 
     android:drawable="@drawable/my_background"/> 
    <item android:id="@android:id/progress"> 
     <clip android:drawable="@android:color/transparent" /> 
    </item> 
    <item android:id="@android:id/secondaryProgress"> 
     <clip android:drawable="@drawable/my_visual_progress" /> 
    </item> 

</layer-list> 

उपयोग setSecondaryProgress(int) साथ दृश्य प्रगति बार की "प्रगति" सेटिंग।

और अंगूठे को स्थानांतरित करने के लिए setProgress(int) का उपयोग करें।

1

मुझे समझ नहीं आता क्या तुम सच में मतलब है, लेकिन मैं आप कहते हैं कि क्या मैं क्या अलग drawbles उपयोग करने का प्रयास मैं आपको एक उदाहरण दिखा किया था से समझ सकते हैं के रूप में:

आपका code जावा

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.drawable.Drawable; 
import android.widget.SeekBar; 

public class MainActivity extends Activity { 
    private SeekBar seekBar1; 

    private SeekBar seekBar2; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     seekBar1 = (SeekBar) findViewById(R.id.seekBar1); 
     seekBar2 = (SeekBar) findViewById(R.id.seekBar2); 
     seekBar1.setProgress(15); 
     seekBar2.setProgress(55); 
     Drawable ii = getResources().getDrawable(R.drawable.ii); 
     // Drawable iii = getResources().getDrawable(R.drawable.ii); 
     seekBar1.setThumb(ii); 
     seekBar2.setThumb(ii); 

    } 



} 

आपकी समस्या:

enter image description here

आप क्या कर सकते simple सिर्फ इस तरह ही drawable नाम बदलने है:

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.drawable.Drawable; 
import android.widget.SeekBar; 

public class MainActivity extends Activity { 
    private SeekBar seekBar1; 

    private SeekBar seekBar2; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     seekBar1 = (SeekBar) findViewById(R.id.seekBar1); 
     seekBar2 = (SeekBar) findViewById(R.id.seekBar2); 
     seekBar1.setProgress(15); 
     seekBar2.setProgress(55); 
     Drawable ii = getResources().getDrawable(R.drawable.ii); 
     Drawable iii = getResources().getDrawable(R.drawable.ii); 
     seekBar1.setThumb(ii); 
     seekBar2.setThumb(iii); 

    } 
} 

और वह परिणाम है:

enter image description here

संबंधित मुद्दे