初学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){
//创建