Android怎么实现网易云推荐歌单界面
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍"Android怎么实现网易云推荐歌单界面"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android怎么实现网易云推荐歌单界面"文章能帮助大
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
简述一个软件开发流程
网络安全关键
什么叫做大数据库
各种列式数据库 优缺点
在云服务器上跑matlab代码
分布式数据库安全问题
服务器适配什么硬盘
删除数据库语言
开展网络安全教育培训
中山塑胶模具制造管理软件开发
工厂中的软件开发和纯软件公司
江苏软件开发怎么选
盘古网络技术有限公司总部
河南仟润网络技术有限公司评价
公安网络安全标准
放疗软件开发
优质管理软件开发
梅州软件开发设计
新浪微博与有信网络技术公司
工作站与服务器的区别
创景网络技术
系统和网络安全防范培训
学网络技术都有哪些
网站储存数据库信息的文件
计算机4级网络技术考的是什么
软件测试为啥没有软件开发工资高
关系数据库有几类完整性
网络安全怎么自我保护
上海童臣网络技术有限公司
网络安全空间要素认证授权