千家信息网

Android怎么实现网易云推荐歌单界面

发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章主要介绍"Android怎么实现网易云推荐歌单界面"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android怎么实现网易云推荐歌单界面"文章能帮助大
千家信息网最后更新 2025年11月17日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安全错误 数据库的锁怎样保障安全 上海淘淘鼠互联网科技有限公司 网络安全不信谣传谣 甘肃三维人口系统软件开发 网络安全教育认识体会 郑州市软件开发区 株洲精益管理软件开发 网络安全行业大中小划分 天水网络安全工程师职业资格证书 深圳云盟互网络技术有限公司 电子软件开发招聘最新信息 服务器ip端口 数据库安全性的事件案例 系统后台服务器如何进入 软件开发公司人员交接单 云南pdu服务器电源哪里便宜 数据库如何保证数据的准确性 WIFI与云服务器通信 祖龙的服务器的名字 字符串存到数据库部分字段乱码 网络安全法试题免费 浅谈网络安全与信息保密内容 一般软件开发工程师负责哪些 国家网络安全宣传周涉县 安卓软件开发设计什么难度偏低 服务器管理员密码怎么查看 安康网络安全宣传周活动 vivo软件开发二面 学软件开发教材 洛阳商通网络技术公司 重庆服务器数据恢复
0