PlayWidget

项目地址:Cleveroad/PlayWidget
简介:適用於 Android 的全新的 Play Widget,由 Cleveroad 提供
您要創建音樂應用嗎?或者,您可以向現有的廣告素材添加一些創意詳情嗎?然後你來到正確的地方!由 Cleveroad 創建的 Android Widget for Android 可以輕鬆地與您的音樂應用程序集成,以便雲端的用戶體驗。打破單調,讓你的音樂播放器獨一無二!
更多:作者   提 Bug   示例 APK   
标签:

Android-GitHub-Open Source Library-Widget-音乐播放-

Brand new Play Widget for Android by Cleveroad

Are you creating a music app? Or maybe you want to add some creative detail to an existing one? Then you’ve come to the right place! Play Widget for Android created by Cleveroad can be easily integrated with your music app to spruce the user experience up. Break the monotony and make your music player unique!

Take a look at the animation on Play Widget for Android on YouTube in HD quality.

New distinct things encourage users to launch your app again. Add the Play Widget component to your app and enjoy the benefits — it’s easy as one-two-three.

Setup and usage

To include this library to your project add dependency in build.gradle file:

    dependencies {compile 'com.cleveroad:play-widget:1.0.0'}

Use the PlayLayout in layout file

<com.cleveroad.play_widget.PlayLayoutandroid:id="@+id/playLayout"android:layout_width="wrap_content"android:layout_height="wrap_content"app:pw_progress_line_enabled="true"app:pw_buttons_size="48dp"app:pw_image_src="@drawable/pw_image"app:pw_progress_ball_color="#01999933"app:pw_progress_complete_line_color="#77FFFFFF"app:pw_progress_line_color="#34FF0000"app:pw_progress_ball_radius="4dp"app:pw_progress_complete_line_stroke_width="5dp"app:pw_progress_line_stroke_width="3dp"app:pw_progress_line_padding="10dp"app:pw_diffusers_padding="15dp"app:pw_big_diffuser_shadow_width="30dp"app:pw_medium_diffuser_shadow_width="25dp"app:pw_small_diffuser_shadow_width="20dp"app:pw_big_diffuser_color="#009933"app:pw_medium_diffuser_color="#003399"app:pw_play_button_background_tint="#123456"
/>

or programmatically

mPlayLayout = new PlayLayout.Builder(context).setLayoutParams(params).setBigDiffuserColorResource(R.color.test_blue).setMediumDiffuserColorResource(R.color.test_green).setBigDiffuserShadowWidthResource(R.dimen.test_dimen_10).setMediumDiffuserShadowWidthResource(R.dimen.test_dimen_10).setSmallDiffuserShadowWidthResource(R.dimen.test_dimen_10).setProgressLinePaddingResource(R.dimen.test_dimen_10).setProgressBallRadiusResource(R.dimen.test_dimen_20).setProgressCompleteLineStrokeWidthResource(R.dimen.test_dimen_10).setProgressLineStrokeWidthResource(R.dimen.test_dimen_20).setProgressLineColorResource(R.color.test_blue).setProgressCompleteColorResource(R.color.test_green).setProgressBallColorResource(R.color.test_red).setDiffusersPaddingResource(R.dimen.test_dimen_30).setButtonsSizeResource(R.dimen.test_dimen_30).setPlayButtonBackgroundTintList(colorStateList).setImageResource(R.drawable.imgpsh_fullsize_hd).build();container.addView(playLayout);

methods for changing any settings you can set via attribute in xml:

void setProgressEnabled(boolean enabled)
void setButtonsSize(int buttonsSize)void setImageBitmap(Bitmap bm)
void setImageURI(@Nullable Uri uri)
void setImageDrawable(@Nullable Drawable drawable)
void setImageResource(@DrawableRes int resId)void setProgressBallColor(int progressBallColor)
void setProgressCompleteColor(int progressCompleteColor)
void setProgressLineColor(int progressLineColor)void setProgressBallRadius(float radius)
void setProgressCompleteLineStrokeWidth(float progressCompleteLineStrokeWidth)
void setProgressLineStrokeWidth(float progressLineStrokeWidth)void setProgressLinePadding(int padding)
void setDiffusersPadding(int padding)void setBigDiffuserShadowWidth(int bigDiffuserShadowWidth)
void setMediumDiffuserShadowWidth(int mediumDiffuserShadowWidth)
void setSmallDiffuserShadowWidth(int smallDiffuserShadowWidth)void setBigDiffuserColor(int color)
void setMediumDiffuserColor(int color)
void setPlayButtonBackgroundTintList(@Nullable ColorStateList tint)

To check if diffusers are open use method:

boolean isOpen();

To set progress use method (0.0f - 1.0f):

void setProgress(float progress)

For providing buttons listener use:

void setOnButtonsClickListener(new OnButtonsClickListener() {@Overridepublic void onShuffleClicked() { }@Overridepublic void onSkipPreviousClicked() { }@Overridepublic void onSkipNextClicked() { }@Overridepublic void onRepeatClicked() { }@Overridepublic void onPlayButtonClicked() { }
});
void setOnButtonsLongClickListener(new OnButtonsLongClickListener() {@Overridepublic void onShuffleLongClicked() {}@Overridepublic void onSkipPreviousLongClicked() {}@Overridepublic void onSkipNextLongClicked() {}@Overridepublic void onRepeatLongClicked() {}@Overridepublic void onPlayButtonLongClicked() {}
});

For providing progress changed listener use:

void setOnProgressChangedListener(new OnProgressChangedListener() {@Overridevoid onPreSetProgress();@Overridepublic void onProgressChanged(float progress) {}
});

Method onPreSetProgress will be called when user touch progress line to start changing progress. For changing shadow params you can use method:

void shadowChanged(float bigDiffuserShadowPercentage,float mediumDiffuserShadowPercentage,float smallDiffuserShadowPercentage
);

You can use shadow provider VisualizerShadowChanger. VisualizerShadowChanger listen to audio from android system and translate it to diffusers shadow changing. To implement you own data shadow provider, just extend your class from PlayLayout.ShadowPercentageProvider class and use changeShadow method to set new shadow percentages.

protected void changeShadow(float bigDiffuserShadowPercentage,float mediumDiffuserShadowPercentage,float smallDiffuserShadowPercentage)

To set shadow provider use:

mPlayLayout.setShadowProvider( VisualizerShadowChanger.newInstance(yourAudioSessionId) );

where yourAudioSessionId is audioSession from MediaPlayer or AudioTrack or 0. For usingVisualizerShadowChanger need to provide permissions:

    <uses-permission android:name="android.permission.RECORD_AUDIO"/><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

Support

If you have any other questions regarding the use of this library, please contact us for support at info@cleveroad.com (email subject: "Android PlayWidget widget. Support request.")

Android 的全新的 Play Widget相关推荐

  1. RE: 从零开始的车载Android HMI(二) - Widget

    1. Widget 概述 Widget,又叫"微件"."小部件".小部件是放置在主屏幕(Launcher)上的Android应用程序的小工具或控件.通过小部件可 ...

  2. Android之解决androidx.appcompat.widget.Toolbar去掉左边距

    1 问题 androidx.appcompat.widget.Toolbar默认左边有间距 2 解决办法 在Toolbar下面添加如下熟悉 app:contentInsetLeft="0dp ...

  3. Android之提示androidx.recyclerview.widget.LinearLayoutManager@51ddcd is already attached to a RecyclerV

    1 问题 我有2个recycleView,但是用的同一个线性布局导致错误如下 LayoutManager androidx.recyclerview.widget.LinearLayoutManage ...

  4. Android列表小部件(Widget)开发详解

    好久没博客更新了,本篇文章来学习一下如何实现一个Android列表小部件,效果可以参看下图: 这个页面如果是在App内部实现,相信只要有一点Android基础的童鞋都能很轻松写出来.但是如果放到Wid ...

  5. Android 桌面组件【app widget】 进阶项目--心情记录器

    之前有一篇是初探 Android App Widget 的文章,今天继续对上一例子进行扩展,并完成了一个小项目,直接可以拿来使用.上篇文章地址:Android 桌面组件[widget]初探 ,未接触过 ...

  6. (4.0.24.2)Android之桌面组件App Widget案例之高仿墨迹天气桌面组件

    相信墨迹天气,大家都见过,他在时间显示和天气界面上,很吸引人,今天我就来模仿一下墨迹天气的桌面组件,但是由于谷歌在天朝频频被墙的缘故,所以我在今天测试的时候,解析xml文件的网页打不开,所以天气显示出 ...

  7. android设置时间widget,【Android】时间与日期Widget(DatePicker 与 TimePicker)

    public class Activity01 extends Activity { TextViewm_TextView; //声明dataPicker DatePickerm_DatePicker ...

  8. 小米8 twrp recovery_小米多机型可刷入Flyme8 daily版 Android P 全新适配-支持13款

    *前言: 全新Fyme8,状态栏对应刘海屏做出优化,目前整体显示较为完美! 强烈建议小米9用户不要开启指纹,残废指纹解锁时闪一下最高亮度 非常难受,就当你用的是iphonex,人脸解锁非常完美! 官网 ...

  9. Android AutoLayout全新的适配方式 堪称适配终结者

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49990941: 本文出自:[张鸿洋的博客] 一.概述 相信Android的开发 ...

最新文章

  1. 【ACM】杭电OJ 1877 又一版A+B(进制转换)
  2. Java解析SQL记录为JSON_Oracle解析复杂json的方法
  3. iOS 7 改变Status Bar 颜色
  4. 【动态规划】cf1034C. Region Separation
  5. 致敬平凡的程序员--《SOD框架“企业级”应用数据架构实战》自序
  6. 干货 | 数据挖掘过关40题
  7. [html] 如何给table中的某一列设置固定宽度
  8. Page cache和Buffer cache
  9. 计算机录屏幕和声音的软件是什么,win7电脑如何录屏?怎么录屏幕视频和声音...
  10. 新中大连接服务器文件,新中大服务器数据库未能连接
  11. Java原生实现多线程下载Tim
  12. 不用校园网如何下载论文文献|DOI号|文献免费下载
  13. 美图秀秀各插件适用场景
  14. 重新安装的keil需要的设置-字体颜色固件库中文显示
  15. 什么是用户实体行为分析(UEBA)
  16. Modulo Summation atcoder abc103
  17. 今日芯声 | 四大运营商之一居然不支持华为?假的!
  18. 2021江苏省南通市高考成绩查询时间,2021南通市安全教育平台登录入口网址【最新】...
  19. QListWidgt QListView QTableWidget QTableView 去掉虚线框
  20. Cadence PCB仿真 使用 Allegro PCB SI 电源和地网络的PDN分析功能介绍图文教程

热门文章

  1. 电子工程可以报考二建_全国二建报名时间最全统计:2020年二建不到30天就可以报考...
  2. 基于VB6.0的货架数量管理系统
  3. python缺少动态库libpython_浅析python 动态库m.so.1.0错误问题
  4. mysql update inner join_mysql update inner join错误
  5. R语言基础 | 方差分析(1):单因素方差分析
  6. EasyRecovery16最新免费版电脑数据恢复软件功能介绍
  7. PostgreSQL安装初始化集群失败
  8. 提示“The connected J-Link is defective,Proper operation cannot be guaranteed.”解决办法
  9. iOS小技能:iOS与H5打通进行数据传输
  10. 区块链技术助力实现“资产通证化”