仿写网易云音乐列表界面设计过程

本文记录初学者使用Android Studio设计音乐播放器界面的过程,包括创建实体类、适配器、fragment,以及遇到的权限问题。通过建立music_item布局实现列表效果,并讨论了在不同Android版本上权限管理的问题。
摘要由CSDN通过智能技术生成

初学Android,请大神勿喷,总结自己这两天学习Android Studio来仿写网易云音乐列表界面的设计与实现读取本地音乐的功能。

1、功能简介

    实现在MainActivity中实现列表和左右滑动功能
    点击实现左右滑动功能
    能在列表中读取本地音乐和音乐专辑图片
    实现从当前页面点击跳转到另一个界面

实现的列表效果图如下所示:
这里写图片描述这里写图片描述

2、实现功能过程

建立一个新的项目来编写音乐播放器,要设计一个音乐界面首先要先操作以下几个步骤:

1. 建立一个实体类entity包
2. 建立一个适配器adapter包
3. 建立一个fragment包
4. 编写一个行布局music_item来编写列表中每一个音乐所代表的行布局

在Activity的layout写入主界面的布局和ViewPage控件,如下代码所示:

<android.support.v4.view.ViewPager
    android:id="@+id/main_local_viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/main_title_music"
    >
</android.support.v4.view.ViewPager>

1、建立一个Music实体类,Music类中定义几个方法在适配器中实现

    在这里我比较喜欢使用public来修饰,因为用public不需要再写set与get方法

2、建立一个music_item行布局xml文件

在layout中新建一个xml文件,来定义在列表中的每一个音乐的布局,在这里我们用到了LinearLayout与RelativeLayout两种布局方法,每一首歌曲在列表中显示的都是音乐的专辑图片、歌名、歌手和专辑名在这里就要建立一个ImageView图片类型与两个TextView文本类型,在这些类型里给图片和文本定义好大小与布局,首先我们在LinearLayout用orientation给一个水平分布的布局,使所有布局水平放置,具体位置再经过代码进行调整,但每一个类型的文件我们要给一个id,方便在接下来的适配器中绑定id

开始布局代码如下所示:
    `<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            //运用orientation进行布局
            android:orientation="horizontal">
     </LinearLayout>`

3、 创建列表界面ListviewAdapter与ViewPageAdapter适配器

    两个适配器都要要继承父类BaseAdapter适配器
    要在适配器内添加两个方法以及构造方法用context连接上下文,用数组获得数据

在适配器中

private Context context;
    private List<Music> musicList;

    public MusicListAdapter(Context context,List<Music> musicList){
        this.context=context;
        this.musicList=musicList;
  }

在里面最为重要的就是运用缓存原理ViewHolder

public View getView(int i, View view, ViewGroup viewGroup) {
         //缓存原理
        View v = null;
        ViewHolder viewHolder;

        if (view==null){
        //创建
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值