Android怎么实现网易云推荐歌单界面
发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,这篇文章主要介绍"Android怎么实现网易云推荐歌单界面"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android怎么实现网易云推荐歌单界面"文章能帮助大
千家信息网最后更新 2025年01月30日Android怎么实现网易云推荐歌单界面
这篇文章主要介绍"Android怎么实现网易云推荐歌单界面"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android怎么实现网易云推荐歌单界面"文章能帮助大家解决问题。
一、实现
1.自定义一个圆角图片控件(也可直接使用第三方框架)
由于是一些简单的绘制,就不一一介绍了,直接上代码。
public class MellowImageView extends ImageView { private Paint paint; public MellowImageView(Context context) { super(context); } public MellowImageView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public MellowImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); paint=new Paint(); } /** * 绘制圆角矩形图片 * @author jimeng */ @Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (null != drawable) { Bitmap bitmap = getBitmapFromDrawable(drawable); Bitmap b = getRoundBitmapByShader(bitmap,getWidth(),getHeight(), 20,0); final Rect rectSrc = new Rect(0, 0, b.getWidth(), b.getHeight()); final Rect rectDest = new Rect(0,0,getWidth(),getHeight()); canvas.drawBitmap(b, rectSrc, rectDest, paint); } else { super.onDraw(canvas); } } /** * 把图片转换成Bitmap * @param drawable * 资源图片 * @return 位图 */ public static Bitmap getBitmapFromDrawable(Drawable drawable) { int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.createBitmap(width, height, drawable .getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); drawable.draw(canvas); return bitmap; } public static Bitmap getRoundBitmapByShader(Bitmap bitmap, int outWidth, int outHeight, int radius, int boarder) { if (bitmap == null) { return null; } int width = bitmap.getWidth(); int height = bitmap.getHeight(); float widthScale = outWidth * 1f / width; float heightScale = outHeight * 1f / height; Matrix matrix = new Matrix(); matrix.setScale(widthScale, heightScale); //创建需要输出的bitmap Bitmap desBitmap = Bitmap.createBitmap(outWidth, outHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(desBitmap); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); //着色器 BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); //给着色器配置matrix bitmapShader.setLocalMatrix(matrix); paint.setShader(bitmapShader); //创建矩形区域并且预留出border RectF rect = new RectF(boarder, boarder, outWidth - boarder, outHeight - boarder); //把传入的bitmap绘制到圆角矩形区域内 canvas.drawRoundRect(rect, radius, radius, paint); return desBitmap; }}
效果图如下:
时间原因,一些简单的细节没有画上去。
2.进行布局摆设
将整个布局放在HorizontalScrollView中使其可以左右滑动,以一个item为例。
3.图片切换动画效果
博主使用的是ViewFlipper。
XML代码如下
划重点:两个动画文件,计蒙调试的将近30分钟才调试成类似效果
anim_marquee_in:
anim_marquee_out:
在Java文件中为ViewFlipper添加view:
private ViewFlipper viewFlipper; //--------------------------------- viewFlipper.removeAllViews(); View view = View.inflate(getContext(), R.layout.home_rebroadcast_item, null); MellowImageView carouselImageView=view.findViewById(R.id.carousel_item_iv); View view1 = View.inflate(getContext(), R.layout.home_rebroadcast_item1, null); MellowImageView carouselImageView1=view.findViewById(R.id.carousel_item_iv); // 循环滚动图片的点击事件 // iv.setOnClickListener(new ....); //添加view viewFlipper.addView(view); viewFlipper.addView(view1);二、实现效果展示
关于"Android怎么实现网易云推荐歌单界面"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
图片
效果
歌单
界面
网易
推荐
圆角
知识
矩形
代码
动画
区域
布局
文件
行业
不同
实用
两个
事件
位图
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
pvp和pve的共存的服务器
修改游戏本地数值怎么上传服务器
闵行区软件开发怎么用
买服务器搭建
数据库项目管理师培训
失落世界服务器哪个职业好
互联网科技创新的标语
网络安全执法检查提意见
打印机服务器管理员程序
湖北常规软件开发定制哪家好
生产数据库怎么清理
网络安全法 国家网信部门
protobuf 数据库
软件开发用手机
贵州省国家网络安全竞赛答案
移动通信和互联网及软件开发
云服务器发送ip地址是否合理
主要的网络安全问题包括
苏州交友软件开发哪里好
维护网络安全主题班会总结
软件开发语言简介
个人网络安全图解
sql数据库多个实例
天津城市职业学院计算机网络技术
如何搭建图片服务器
奉贤区公司软件开发服务保障
四川云端数据库
数据库系统操作手册
什么数据库不能进行分离
精益软件开发产品文档