Dewa Yudie
Dewa Yudie

Reputation: 117

How can I change volume from volume preference on android?

I have an app has volume preference, below my layout code:

<VolumePreference
android:name="Volume Preference"
android:summary="Ringtone Volume"
android:title="Ringtone Volume"
android:key="ringVolPref"/>

But I don't know, How to implement that on class?

Upvotes: 2

Views: 2194

Answers (2)

mr.kostua
mr.kostua

Reputation: 724

In your case, best way is to add to your .xml android:streamType. This will change the volume of the selected stream type.

<VolumePreference
           android:title="Alarm volume"
           android:persistent="false"
           android:streamType="alarm"/>

Upvotes: 0

Dimensional Sys
Dimensional Sys

Reputation: 498

Try this code

XML

<SeekBar android:id="@+id/seekbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:max="100"
android:minWidth="250px"  />

CODE

public class MainActivity extends Activity 
{

    /** Called when the activity is first created. */

    private SeekBar volumeSeekbar = null;
    private AudioManager audioManager = null; 

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        setContentView(R.layout.main);
        initControls();
    }

    private void initControls()
    {
        try
        {
            volumeSeekbar = (SeekBar)findViewById(R.id.seekbar);
            audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            volumeSeekbar.setMax(audioManager
                    .getStreamMaxVolume(AudioManager.STREAM_MUSIC));
            volumeSeekbar.setProgress(audioManager
                    .getStreamVolume(AudioManager.STREAM_MUSIC));   


            volumeSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
            {
                @Override
                public void onStopTrackingTouch(SeekBar arg0) 
                {
                }

                @Override
                public void onStartTrackingTouch(SeekBar arg0) 
                {
                }

                @Override
                public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) 
                {
                    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                            progress, 0);
                }
            });
        }
        catch (Exception e) 
        {
            e.printStackTrace();
        }
    }

Upvotes: 1

Related Questions