Android 使用SeekBar调节系统音量

以下是一个使用SeekBar来调节系统音量的实例:
1、XML:
   <SeekBar
  android:id="@+id/sound"
  android:layout_width="150px"
  android:layout_height="10px"
  android:max="100"  //设置拖动条最大值
  android:progress="10"   //设置拖动条当前值
  android:progressDrawable="@layout/seekbar_style"  //拖动条样式
  android:thumb="@layout/thumb" />  //滑块样式
 

2、seekbar_style.xml:
 <?xml version="1.0" encoding="UTF-8"?>  
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
 
    <item android:id="@android:id/background">  
        <shape>  
            <corners android:radius="10dip" />  
            <gradient android:startColor="#ffffffff" 
                android:centerColor="#ff000000" android:endColor="#ff808A87" 
                android:centerY="1" android:angle="270" />  
        </shape>  
    </item>  
 
    <item android:id="@android:id/progress">  
        <clip>  
            <shape>  
                <corners android:radius="10dip" />  
                <gradient android:startColor="#ffffffff" 
                    android:centerColor="#ffFFFF00" android:endColor="#ffAABD00" 
                    android:centerY="1" android:angle="270" />  
            </shape>  
        </clip>  
    </item>  
 </layer-list>   


3、thumb.xml:
 <?xml version="1.0" encoding="UTF-8"?>    
 <selector xmlns:android="http://schemas.android.com/apk/res/android">          
  <!-- 按下状态 -->   
  <item      
   android:state_pressed="true"   
   android:drawable="@drawable/thumb_normal"     
   />     
  <!-- 普通无焦点状态 -->   
  <item      
   android:state_focused="false"      
   android:state_pressed="false"    
   android:drawable="@drawable/thumb_normal" 
  />  
 </selector>   


4、bacon_seekbar.xml:
 <layer-list
   xmlns:android="http://schemas.android.com/apk/res/android">
   <item
  android:id="@+android:id/background"
  android:drawable="@drawable/thumb_normal" />
   <item
  android:id="@+android:id/SecondaryProgress"
  android:drawable="@drawable/thumb_normal" />
   <item
  android:id="@+android:id/progress"
  android:drawable="@drawable/thumb_normal" />
 </layer-list>


5、JAVA代码:
public class PianoActivity extends Activity {
    /** Called when the activity is first created. */
  private ImageButton imageButton_white1;
 private MediaPlayer mediaPlayer01;
 public  AudioManager audiomanage;
 private TextView mVolume ;  //显示当前音量
  public  SeekBar soundBar;
  private int maxVolume, currentVolume; 

 

 private int volume=0;  //初始化声音

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mediaPlayer01 = new MediaPlayer();      
      

        imageButton_white1=(ImageButton)findViewById(R.id.white1);
        final SeekBar soundBar=(SeekBar)findViewById(R.id.sound);  //音量设置
        mVolume = (TextView)findViewById(R.id.mVolume); 
        audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 


        maxVolume = audiomanage.getStreamMaxVolume(AudioManager.STREAM_MUSIC);  //获取系统最大音量
        soundBar.setMax(maxVolume);   //拖动条最高值与系统最大声匹配
        currentVolume = audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC);  //获取当前值
        soundBar.setProgress(currentVolume); 
        mVolume.setText(currentVolume*100/maxVolume + " %"); 
 
        soundBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){调音监听器
          public void onProgressChanged(SeekBar arg0,int progress,boolean fromUser){
                audiomanage.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);  
                currentVolume = audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC);  //获取当前值
                soundBar.setProgress(currentVolume);  
                mVolume.setText(currentVolume*100/maxVolume + " %");  
          }
           
       @Override
      public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
         }
       @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
           // TODO Auto-generated method stub    

       }
      });

 

转载于:https://www.cnblogs.com/zhangping/p/3514146.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab可达矩阵 结果,matlab求可达矩阵

matlab中可达矩阵的计算 2页 1下载券 邻接矩阵的可达矩阵及层... 2页 2下载券 邻接矩阵的一种计算方法 7页 免费 ISM算法(邻接矩阵求可达... 暂无......JAVA矩阵算法代码 4页 2下载券 可达矩阵新算法 2页 2下载券 基于ISM模型用matlab软件... 10页 2下载券 图邻接矩阵相关算法实…

muduo for v210

目标&#xff1a;将muduo移植到v210上面 内核版本&#xff1a;2.6.35.7 1. 修改最上层的CMakeLists.txt 1) 在CXX_FLAGS里&#xff0c;加上-DVALGRIND&#xff0c;这样SocketsOps.cc就不会报错了。 2) 在CXX_FLAGS里&#xff0c;修改-marchnative为-marcharmv4 3) set(CMAKE_…

Com组件介绍

COM组件简介面向对象的思想难以适应这种分布式软件模型&#xff0c;于是组件化程序设计思想得到了迅速的发展。 按照组件化的程序设计的思想&#xff0c;复杂的应用程序被设计成一些小的&#xff0c;功能单一的组件模块&#xff0c;这些组件模块可以运行在同一台机器上&#xf…

matlab中solve和resolve,resolve和solve的区别

solve和resolve的区别在于&#xff1a;首先solve一般用于解决难题。如solve a problem, solve a riddle, solve an algebra problem。而resolve 是用在解决矛盾&#xff0c;或者是解决大难题&#xff0c;较显示问题的严重性。如resolve a conflict。其他有关slove的词dissolve&…

v210 启动脚本分析

1. 一般嵌入式linux系统的init进程会首先读取/etc/inittab文件&#xff0c;这里记录了系统在不阶段需要运行的程序与脚本文件。 其中v210的此文件里有这么一句 ::sysinit:/etc/init.d/rcS 也就是说在系统启动阶段要运行rcS文件。 2. 现在看rcS文件 for i in /etc/init.d/S??*…

hdu 2940

简单的大数乘法&#xff0c;直接改16进制~~ #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <algorithm> #define maxn 3010 #define INF 0x7fffffff #define ull unsigned long long using namespace std…

shell变量详解

1 shell变量基础 shell变量是一种很“弱”的变量&#xff0c;默认情况下&#xff0c;一个变量保存一个串&#xff0c;shell不关心这个串是什么含义。所以若要进行数学运算&#xff0c;必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类&#xff1a;局部变…

PB datawindow中的文本调整打印长度

long row_count if right(label_text,1) ‘、’ then//label_text是在外面定义的全局变量&#xff08;Instance&#xff09; label_text left (label_text,len(label_text) -1) end if row_count ceiling(len(label_text) / 33) dw_print_nxs.modify("expand2_1.heigh…

redis php怎么使用教程,PHP 使用redis

connect($host, $port);if ($ret false) {die($redis->getLastError());}$ret $redis->auth($user . "-" . $pwd . "-" . $dbname);if ($ret false) {die($redis->getLastError());}/*接下来就可以对该库进行操作了&#xff0c;具体操作方法请…

Ubuntu apache 禁止目录浏览

$ sudo vim /etc/apache2/sites-enabled/000-default 将Options后面Indexes前面加上"-"表示禁止目录浏览&#xff1a; <Directory /var/www/> Options -Indexes ...... </Directory> 然后重启apache $sudo service apache2 restart 转载于:https://www.…

CMake命令之list

用途&#xff1a;提供一些列表操作 list(LENGTH <list><output variable>) list(GET <list> <elementindex> [<element index> ...] <output variable>) list(APPEND <list><element> [<element> ...]) li…

python内函数名加括号和不加括号的区别,python中 函数名加括号与不加括号

Maven之自定义archetype生成项目骨架&lpar;一&rpar;Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论(0) 收藏 举报 分类: Maven技术(9) ...Effective Objective-C 2&period;0 — 第9条&#xff1a;以&OpenCu…

POST

NSURL *url [NSURL URLWithString:"https://www.baidu.com"];NSMutableURLRequest *request [NSMutableURLRequest requestWithURL:url];request.HTTPMethod "POST";// 请求参数NSString *bodyStr [NSString stringWithFormat:"username%&pas…

CMake 手册详解(二十二)

原文地址 http://www.cnblogs.com/coderfenghc/archive/2012/10/20/2712806.html CMD#65: separate_arguments 将空格分隔的参数解析为一个分号分隔的list。 separate_arguments(<var> <UNIX|WINDOWS>_COMMAND "<args>") 解析一个unix或者windows…

websocket多人聊天php,php-notes/基于websocket实现多人聊天室.md at master · dd-code-site/php-notes · GitHub...

WebSocket连接断开格式&#xff1a;ws://IP或域名:端口发送消息var websocket;var wsUrl;function connect(){try {wsUrl $(#wsUrl).val();websocket new WebSocket(wsUrl);websocket.onopen function(event){console.log(客户端与服务端连接成功);connectChangeButton();al…

cmake学习(二)常用变量和常用环境变量

一、变量的引用方式是使用“${}”&#xff0c;在IF中&#xff0c;不需要使用这种方式&#xff0c;直接使用变量名即可 二、自定义变量使用SET(OBJ_NAME xxxx)&#xff0c;使用时${OBJ_NAME}三、cmake的常用变量&#xff1a;CMAKE_BINARY_DIR,PROJECT_BINARY_DIR,_BINARY_DIR&am…

if和case用法比较

Case语句时并发语句&#xff0c;需要采用并行逻辑来实现&#xff0c;不存在逻辑的优先级别。If……else语句时多级嵌套语句&#xff0c;通常采用逻辑的串联来实现&#xff0c;该结构具有优先级别问题。这两种结构分别如下图所示&#xff1a; Always (a or b or c or d or s[1:…

CMake的使用

一、 基本使用 安装&#xff1a;下载二进制包后可直接解压使用 从源码安装则执行命令&#xff1a;./bootstrap; make; make install——尝试执行bootstrap失败 使用&#xff1a;cmake dir_path&#xff0c;生成工程文件或makefile文件 二、 概念 out-of-source …

PHP实训笔记,【学习笔记19】实验吧 让我进去

知识点MD5拓展攻击解题思路打开网站后看到&#xff0c;什么都没有&#xff0c;尝试抓包分析360截图17860604827894.PNGBurp 抓包发现&#xff0c;Cookie有东西。先是把source0改成source1,得到源码。、、、$flag "XXXXXXXXXXXXXXXXXXXXXXX";$secret "XXXXXXXX…

CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别

看了好多网上的文章&#xff0c;都说PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。 实际不然。 一般来说&#xff0c;都是这样用 cmake ./ 这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候&#xff0c;并不在源码…