这几天想放开歌喉 唱歌 下了唱吧app,发现里面的交互效果 挺好玩的,突然就想写出来 (可能这就是本能吧)

左侧是本地效果,图二是唱吧效果

这里写代码片

这里写图片描述

这里写图片描述

这里写图片描述

实现1

想下移动这个实现较为简单 实际是个ViewPager+FragmentPagerAdapter 的操作 ,然后加个Fragment的动画

public class ChangBarViewPagerTransforms implements ViewPager.PageTransformer {

private int height=300;

@Override

public void transformPage(View page, float position) {

if (position > 0 && position <= 1) {//right scorlling

page.setTranslationY(-height * position);

page.setAlpha(1-position);

} else if (position >= -1 && position < 0) {//left scrolling

page.setTranslationY(height * position);

page.setAlpha(1-position);

} else {

}

}

}

这这样实现了 唱吧切换的效果 这个实现还是基本操作的

实现2

最难的感觉还是顶部栏背景的变色 扩散的形式变色 看上去很酷炫 ,操作还是shader取处理的 通过LinearGradient

然后处理起始的坐标,案例中简单的通过rgb 中的b 递增来做到 首位的颜色相近, 大体的思路是这样的

public class ColorBar extends FrameLayout {

Shader mLinearGradient1 = null;

Paint mPaint = null;

private Point mCurrentPoint;

public ColorBar(@NonNull Context context) {

super(context);

init();

}

public ColorBar(@NonNull Context context, @Nullable AttributeSet attrs) {

super(context, attrs);

init();

}

public ColorBar(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

private void init() {

setWillNotDraw(false);

Random random = new Random();

r = random.nextInt(256);

g = random.nextInt(256);

b = random.nextInt(256);

endr=r;

endg=g;

endb=0;

}

private int num=0;

private int r;

private int g;

private int b;

private int endr;

private int endg;

private int endb;

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

Point changeColrPoint = getChangeColrPoint();

mLinearGradient1 = new LinearGradient(0, 0, getMeasuredWidth(), getMeasuredHeight(), new int[]{

changeColrPoint.x,changeColrPoint.y}, null,

Shader.TileMode.CLAMP);

mPaint = new Paint();

mPaint.setShader(mLinearGradient1);

canvas.drawRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), mPaint);

postDelayed(new Runnable() {

@Override

public void run() {

invalidate();

}

},50);

}

private Point getChangeColrPoint(){

if (num>= b){

mCurrentPoint=null;

init();

num=0;

}

if (mCurrentPoint==null){

mCurrentPoint= new Point(Color.rgb(r,g,b),Color.rgb(endr,endg,endb));

}

mCurrentPoint.y=Color.rgb(endr,endg,num);

num++;

return mCurrentPoint;

}

}

android:id="@+id/color_bar"

android:layout_width="match_parent"

android:layout_height="45dp">

android:layout_width="match_parent"

android:orientation="vertical"

android:gravity="center"

android:layout_height="match_parent">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:shadowColor="#0f0"

android:textSize="16sp"

android:gravity="center"

android:text="标题栏"/>

android模仿唱吧榜单界面,仿唱吧UI效果相关推荐

  1. android模仿唱吧榜单界面,唱吧界面重设计|UI|APP界面|超人不是神- 原创作品 - 站酷 (ZCOOL)...

    1.为什么选择改版唱吧: 在同类K歌软件中,唱吧的用户人群很大,功能比较完善: 但是唱吧的功能比较复杂,视觉设计却不够简洁(分隔线太多,元素与元素的间隔太小等)导致页面略显拥挤: 在交互上,个人认为有 ...

  2. android模仿唱吧榜单界面,唱吧上线弹唱新功能 却因界面设计功能相似被指抄袭唱鸭...

    [TechWeb]1月10日消息,日前,有多家媒体报道称,唱吧即将上线弹唱功能,目前正在测试中,并且已经有用户上传弹唱作品.与此同时,唱吧还将正式对外宣布上亿规模的音乐创作者分成计划.不过,有网友发现 ...

  3. android模仿唱吧榜单界面,唱吧上线弹唱新功能,界面设计被指像素级抄袭唱鸭...

    1月10日消息,日前,有多家媒体报道称,唱吧即将上线弹唱功能,目前正在测试中,并且已经有用户上传弹唱作品.与此同时,唱吧还将正式对外宣布上亿规模的音乐创作者分成计划.不过,有网友发现,唱吧上线的新功能 ...

  4. Android模仿淘宝详情页界面

    话不多说-先上效果图: 图1中主要需要实现的效果: 1.轮播图 2.顶部导航栏的渐变 3.顶部导航栏随着滑动的位置选择对应的值以及点击滑动到对应位置 Android模仿淘宝详情页界面文件:url80. ...

  5. 高仿小米盒子UI效果实现

    高仿小米盒子UI效果实现.不多说什么,注释我代码写得比较清楚了. 不懂的看代码.效果图如下:

  6. Vue实现仿音乐播放器13-实现音乐榜单跳转显以及播放效果

    效果 实现 百度音乐获取列表API说明 例:method=baidu.ting.billboard.billList&type=1&size=10&offset=0 参数: t ...

  7. iOS物理碰撞、唱吧音频处理、仿淘宝联动效果等源码

    iOS精选源码 物理仿真 碰撞 陀螺仪 使用 仿淘宝详情和每日优鲜的一个联动效果 JJNetwork网络库 iOS列表选择弹框 网络视频直播类--原生socket音视频实时传输--智能家居 Skele ...

  8. iOS物理碰撞、唱吧音频处理、仿淘宝联动效果等源码 1

    iOS精选源码 物理仿真 碰撞 陀螺仪 使用 仿淘宝详情和每日优鲜的一个联动效果 JJNetwork网络库 iOS列表选择弹框 网络视频直播类–原生socket音视频实时传输–智能家居 Skeleto ...

  9. android软件安全权威指南 pdf_AV-TEST 发布 2019 最佳 Android 安全软件榜单

    AV-TEST 近日评测了市场上常见的 21 款 Android 安全软件,发现各产品的恶意软件平均实时检出率达到 97.2%,对过去四周新发现的 Android 恶意软件的实时检出率达到 97.5% ...

最新文章

  1. 官方全面解读“5G+工业互联网”
  2. ie浏览器修复_Win8系统电脑无法打开运行IE浏览器的解决方法
  3. 80端口被占用pid 4,svhost等占用的解决方法
  4. 网站优化之哪些设置会影响蜘蛛的爬取?
  5. windows python读取grib2数据
  6. 15 JS应用-todolist任务
  7. LeetCode 170. 两数之和 III - 数据结构设计(哈希map)
  8. 免费学python的网课-学习python的时候观看网课学习还是买书学习效率高?
  9. css 查看更多_Cirrus(原型制作CSS框架)下载-Cirrus(原型制作CSS框架)v0.6.0免费版下载...
  10. 【每日一题(26)】初等排序算法(3) 插入排序 希尔排序 (更正)
  11. [Erlang 0125] Know a little Erlang opcode
  12. android 拍照 对焦,Android Camera2 拍照(四)——对焦模式
  13. TextView 设置显示省略号
  14. [GUI] 使用MATLAB从图片中提取曲线数据
  15. Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解
  16. 盘点:文本内容安全领域 深度学习的六个主流应用方法
  17. Android 外置 SD 卡写入权限问题
  18. 兔年首文迎新春-Cesium橘子洲烟花礼赞
  19. 每周一本书之《Python大战机器学习:数据科学家的第一个小目标》
  20. 如何通过网络数据的获取,做出这些数据分析项目?

热门文章

  1. 计算机网络网络命令的使用,计算机网络工程网络命令的运用
  2. 深圳硬件代加工厂黑幕
  3. 目前QQ校友录中的班级创建申请很多
  4. HOST文件修改后无法保存,或无法修改 解决方案
  5. 什么是连续变量与离散变量?
  6. 电子电气架构——测试工具:Canalyzer快速入门
  7. 宇宙天团之兔歪夫--碗
  8. WAIC | 阿里副总裁司罗:大规模语言模型如何赋能行业、创造价值
  9. 如何利用微信高效地做好「时间管理」?
  10. 需要外语翻译怎么办?用好语音翻译器就够了