随手记----Android仿iOS音量调节的效果
2016-03-02 10:08
459 查看
之前提交过一个Android防iOS音量或亮度等调节的效果,只是简单的提交了代码分享,没有对代码的逻辑进行梳理如今希望能有更多原创的东西能与大家分享,同时加深自己的记忆,在这里对代码进行一些分析和改进
效果图:
代码分享:主要是layout
<RatingBar
android:id="@+id/volume_ratingBar"
style="@style/wmtRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:numStars="15"
android:paddingBottom="20dip"
android:paddingTop="20dip" >
</RatingBar>
在这里使用的是对Ratingbar进行一些小的修改,主要是修改了其style,即style="@style/wmtRatingBar"
wmtRatingBar.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="wmtRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/wmt_ratingbar</item>
<item name="android:minHeight">16dip</item>
<item name="android:maxHeight">16dip</item>
</style>
</resources>
wmt_ratingbar.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" android:drawable="@drawable/wmt_ratingbar_off"></item>
<item android:id="@+android:id/secondaryProgress" android:drawable="@drawable/wmt_ratingbar_off"></item>
<item android:id="@+android:id/progress" android:drawable="@drawable/wmt_ratingbar_on"></item>
</layer-list>
如此就已经将layout修改完毕由于RatingBar的方法只能监听停止的动作,就会带来一个很明显的问题,不能在move的同时修改需要的效果,如音量/亮度如果你是做系统,可以在RatingBar.java文件中做一个简单的修改即可,但是只是从应用程度上来说,暂时还没有好的方法.
效果图:
代码分享:主要是layout
<RatingBar
android:id="@+id/volume_ratingBar"
style="@style/wmtRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:numStars="15"
android:paddingBottom="20dip"
android:paddingTop="20dip" >
</RatingBar>
在这里使用的是对Ratingbar进行一些小的修改,主要是修改了其style,即style="@style/wmtRatingBar"
wmtRatingBar.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="wmtRatingBar" parent="@android:style/Widget.RatingBar">
<item name="android:progressDrawable">@drawable/wmt_ratingbar</item>
<item name="android:minHeight">16dip</item>
<item name="android:maxHeight">16dip</item>
</style>
</resources>
wmt_ratingbar.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" android:drawable="@drawable/wmt_ratingbar_off"></item>
<item android:id="@+android:id/secondaryProgress" android:drawable="@drawable/wmt_ratingbar_off"></item>
<item android:id="@+android:id/progress" android:drawable="@drawable/wmt_ratingbar_on"></item>
</layer-list>
如此就已经将layout修改完毕由于RatingBar的方法只能监听停止的动作,就会带来一个很明显的问题,不能在move的同时修改需要的效果,如音量/亮度如果你是做系统,可以在RatingBar.java文件中做一个简单的修改即可,但是只是从应用程度上来说,暂时还没有好的方法.
相关文章推荐
- java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@412d723
- Android基于蓝牙的聊天demo
- Android实现渐变title栏
- 今天学习Android软键盘
- android学习笔记(一)---shape属性
- 老罗Android(19)AsyncTask下载图片例子
- Android 多线程
- 在Mac环境下安装AndroidStudio
- SAX,DOM,Pull的比较
- Android Fragment分页显示的实现
- Android 仿美团网,探索ListView的A-Z字母排序功能实现选择城市
- Pull解析和生成XML
- Android给页面添加横线和竖线
- EditText属性整理
- Activity四种启动模式及应用
- Android数据输入测试的checklist
- android下拉选择框spinner
- 实现Android 动态加载APK(Fragment or Activity实现)
- Android消息通知(notification)和PendingIntent传值
- Android屏幕适配全攻略(最权威的官方适配指导)