增加自建列表和收藏列表的显示功能

pull/1/head
jsyjst 7 years ago
parent 15583cdd65
commit 00f4c565e2

@ -2,7 +2,7 @@
<litepal>
<dbname value="SongList"></dbname>
<version value="11"></version>
<version value="12"></version>
<list>
<mapping class="com.example.musicplayer.entiy.OnlineSong"></mapping>
@ -10,5 +10,6 @@
<mapping class="com.example.musicplayer.entiy.SearchHistory"></mapping>
<mapping class="com.example.musicplayer.entiy.Love"></mapping>
<mapping class="com.example.musicplayer.entiy.HistorySong"></mapping>
<mapping class="com.example.musicplayer.entiy.AlbumCollection"></mapping>
</list>
</litepal>

@ -8,21 +8,34 @@ import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.andexert.library.RippleView;
import com.example.musicplayer.R;
import com.example.musicplayer.entiy.AlbumCollection;
import com.example.musicplayer.util.CommonUtil;
import java.util.List;
/**
* Created by on 2018/9/23.
*/
public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
private static final String TAG = "ExpandableListViewAdapter";
private String[] mGroupStrings;
private String [][] mChildStrings;
private List<List<AlbumCollection>> mAlbumCollectionList;
private Context mContext;
public ExpandableListViewAdapter(Context context, String [] groupStrings, String [][] childStrings){
mChildStrings=childStrings;
private OnChildItemClickListener mChildClickListener;
public ExpandableListViewAdapter(Context context, String[] groupStrings, List<List<AlbumCollection>> albumCollectionList) {
mAlbumCollectionList = albumCollectionList;
mGroupStrings = groupStrings;
mContext = context;
}
public void setOnChildItemClickListener(OnChildItemClickListener onChildItemClickListener){
mChildClickListener=onChildItemClickListener;
}
@Override
public int getGroupCount() {
@ -31,7 +44,7 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
@Override
public int getChildrenCount(int groupPosition) {
return mChildStrings[groupPosition].length;
return mAlbumCollectionList.get(groupPosition).size();
}
@Override
@ -41,7 +54,7 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
@Override
public Object getChild(int groupPosition, int childPosition) {
return mChildStrings[groupPosition][childPosition];
return mAlbumCollectionList.get(groupPosition).get(childPosition);
}
@Override
@ -56,54 +69,84 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
@Override
public boolean hasStableIds() {
return false;
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View view;
GroupViewHolder groupViewHolder;
final GroupViewHolder groupViewHolder;
if (convertView == null) {
view = LayoutInflater.from(mContext).inflate(R.layout.item_first, parent, false);
groupViewHolder = new GroupViewHolder();
groupViewHolder.groupTextView = view.findViewById(R.id.tv_new_song);
groupViewHolder.pointIv = view.findViewById(R.id.iv_point);
groupViewHolder.addIv = view.findViewById(R.id.iv_add);
view.setTag(groupViewHolder);
} else {
view = convertView;
groupViewHolder = (GroupViewHolder) view.getTag();
}
groupViewHolder.groupTextView.setText(mGroupStrings[groupPosition]);
if (isExpanded) {
groupViewHolder.pointIv.setImageResource(R.drawable.up);
} else {
groupViewHolder.pointIv.setImageResource(R.drawable.down);
}
return view;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View view;
ChildViewHolder childViewHolder;
final ChildViewHolder childViewHolder;
if (convertView == null) {
view= LayoutInflater.from(mContext).inflate(R.layout.item_second,parent,false);
childViewHolder = new ChildViewHolder();
childViewHolder.childTextView=view.findViewById(R.id.tv_song_list_name);
view = LayoutInflater.from(mContext).inflate(R.layout.item_second, parent, false);
childViewHolder.albumNameTv = view.findViewById(R.id.tv_album_name);
childViewHolder.faceIv = view.findViewById(R.id.iv_album);
childViewHolder.authorTv = view.findViewById(R.id.tv_author);
childViewHolder.childView = view.findViewById(R.id.ripple);
view.setTag(childViewHolder);
} else {
view = convertView;
childViewHolder = (ChildViewHolder) view.getTag();
}
childViewHolder.childTextView.setText(mChildStrings[groupPosition][childPosition]);
view.setBackgroundResource(R.color.translucent);
childViewHolder.albumNameTv.setText(mAlbumCollectionList.get(groupPosition).get(childPosition).getAlbumName());
childViewHolder.authorTv.setText(mAlbumCollectionList.get(groupPosition).get(childPosition).getSingerName());
CommonUtil.setImgWithGlide(mContext,
mAlbumCollectionList.get(groupPosition).get(childPosition).getAlbumPic(), childViewHolder.faceIv);
childViewHolder.childView.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() {
@Override
public void onComplete(RippleView rippleView) {
mChildClickListener.onClick(groupPosition,childPosition);
}
});
return view;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
return true;
}
class GroupViewHolder {
private TextView groupTextView;
private ImageView pointIv;
private ImageView addIv;
}
class ChildViewHolder {
private TextView childTextView;
private ImageView faceIv;
TextView albumNameTv;
ImageView faceIv;
TextView authorTv;
RippleView childView;
}
public interface OnChildItemClickListener{
void onClick(int groupPosition,int childPosition);
}
}

@ -16,5 +16,6 @@ public class BroadcastName {
public static final String LOVE_SONG_CHANGE="love_song_change";
public static final String LOVE_SONG_CANCEL="love_song_cancel";
public static final String HISTORY_SONG_CHANGE="history_song_change";
public static final String COLLECTION_ALBUM_CHANGE="collection_album_change";
}

@ -0,0 +1,73 @@
package com.example.musicplayer.entiy;
import org.litepal.crud.LitePalSupport;
/**
* Created by on 2018/12/4.
*/
public class AlbumCollection extends LitePalSupport {
private long id;
private String albumId;
private String albumName;
private String singerName;
private String albumPic;
private String publicTime;
private String SongNum;
public void setId(long id) {
this.id = id;
}
public long getId() {
return id;
}
public void setAlbumId(String albumId) {
this.albumId = albumId;
}
public String getAlbumId() {
return albumId;
}
public String getAlbumName() {
return albumName;
}
public String getAlbumPic() {
return albumPic;
}
public String getPublicTime() {
return publicTime;
}
public String getSingerName() {
return singerName;
}
public String getSongNum() {
return SongNum;
}
public void setAlbumName(String albumName) {
this.albumName = albumName;
}
public void setAlbumPic(String albumPic) {
this.albumPic = albumPic;
}
public void setPublicTime(String publicTime) {
this.publicTime = publicTime;
}
public void setSingerName(String singerName) {
this.singerName = singerName;
}
public void setSongNum(String songNum) {
SongNum = songNum;
}
}

@ -449,7 +449,7 @@ public class PlayerService extends Service {
public void onFinish(boolean success) {
if (success) {
if(LitePal.findAll(HistorySong.class).size()>Constant.HISTORY_MAX_SIZE){
LitePal.delete(HistorySong.class,LitePal.findAll(HistorySong.class).get(0).getId());
LitePal.delete(HistorySong.class,LitePal.findFirst(HistorySong.class).getId());
}
}
}

@ -14,6 +14,7 @@ import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@ -168,5 +169,12 @@ public class CommonUtil {
.into(target);
return null;
}
public static void setImgWithGlide(Context context,String imgUrl,ImageView view){
Glide.with(context)
.load(imgUrl)
.apply(RequestOptions.placeholderOf(R.drawable.welcome))
.apply(RequestOptions.errorOf(R.drawable.love))
.into(view);
}
}

@ -1,5 +1,8 @@
package com.example.musicplayer.view;
import android.animation.AnimatorInflater;
import android.animation.AnimatorSet;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
@ -13,9 +16,12 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
@ -26,9 +32,16 @@ import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.example.musicplayer.R;
import com.example.musicplayer.constant.BroadcastName;
import com.example.musicplayer.entiy.Album;
import com.example.musicplayer.entiy.AlbumCollection;
import com.example.musicplayer.util.CommonUtil;
import com.github.florent37.materialviewpager.MaterialViewPager;
import org.litepal.LitePal;
import org.litepal.crud.callback.SaveCallback;
import org.litepal.crud.callback.UpdateOrDeleteCallback;
import javax.microedition.khronos.opengles.GL;
/**
@ -52,6 +65,14 @@ public class AlbumContentFragment extends Fragment {
private TextView mSingerNameTv;
private TextView mPublicTimeTv;
private ImageView mAlbumPicIv;
private MenuItem mLoveBtn;
private boolean mLove;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);//加上这句话menu才会显示出来
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@ -66,11 +87,20 @@ public class AlbumContentFragment extends Fragment {
mPublicTimeTv = mViewPager.getHeaderBackgroundContainer().findViewById(R.id.tv_public_time);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.love, menu);
mLoveBtn = menu.findItem(R.id.btn_love);
showLove();
super.onCreateOptionsMenu(menu, inflater);
}
private void initView() {
toolbar.setTitle(mAlbumName);
@ -88,11 +118,8 @@ public class AlbumContentFragment extends Fragment {
.apply(RequestOptions.errorOf(R.drawable.welcome))
.into(target);
mSingerNameTv.setText("歌手 " + mSingerNmae);
mPublicTimeTv.setText("发行时间 " + mPublicTime);
toolbar.setTitleTextColor(getActivity().getResources().getColor(R.color.white));
if (toolbar != null) {
((AppCompatActivity) getActivity()).setSupportActionBar(toolbar);
@ -113,7 +140,6 @@ public class AlbumContentFragment extends Fragment {
getActivity().getSupportFragmentManager().popBackStack();
}
});
mViewPager.getViewPager().setAdapter(new FragmentStatePagerAdapter(getActivity().getSupportFragmentManager()) {
@Override
@ -153,8 +179,55 @@ public class AlbumContentFragment extends Fragment {
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.btn_love:
if (mLove) {
LitePal.deleteAllAsync(AlbumCollection.class, "albumId=?", mId).listen(new UpdateOrDeleteCallback() {
@Override
public void onFinish(int rowsAffected) {
mLoveBtn.setIcon(R.drawable.favorites);
CommonUtil.showToast(getActivity(), "你已取消收藏该专辑");
}
});
} else {
AlbumCollection albumCollection = new AlbumCollection();
albumCollection.setAlbumId(mId);
albumCollection.setAlbumName(mAlbumName);
albumCollection.setAlbumPic(mAlbumPic);
albumCollection.setPublicTime(mPublicTime);
albumCollection.setSingerName(mSingerNmae);
albumCollection.saveAsync().listen(new SaveCallback() {
@Override
public void onFinish(boolean success) {
mLoveBtn.setIcon(R.drawable.favorites_selected);
CommonUtil.showToast(getActivity(), "收藏专辑成功");
}
});
}
mLove = !mLove;
//发送收藏改变的广播通知收藏列表
getActivity().sendBroadcast(new Intent(BroadcastName.COLLECTION_ALBUM_CHANGE));
break;
}
return super.onOptionsItemSelected(item);
}
private void showLove() {
if (LitePal.where("albumId=?", mId).find(AlbumCollection.class).size() != 0) {
mLove = true;
mLoveBtn.setIcon(R.drawable.favorites_selected);
} else {
mLove = false;
mLoveBtn.setIcon(R.drawable.favorites);
}
}
public static Fragment newInstance(String id,String albumName,String albumPic,String singerName,String publicTime){
public static Fragment newInstance(String id, String albumName, String albumPic, String
singerName, String publicTime) {
AlbumContentFragment albumContentFragment = new AlbumContentFragment();
Bundle bundle = new Bundle();
bundle.putString(ALBUM_ID_KEY, id);
@ -165,6 +238,7 @@ public class AlbumContentFragment extends Fragment {
albumContentFragment.setArguments(bundle);
return albumContentFragment;
}
private void getBundle() {
Bundle bundle = getArguments();
if (bundle != null) {

@ -132,7 +132,6 @@ public class AlbumSongFragment extends Fragment implements IAlbumSongContract.Vi
@Override
public void onDestroy(){
super.onDestroy();
getActivity().unbindService(connection);
getActivity().unregisterReceiver(albumSongChangeReceiver);
}

@ -259,7 +259,7 @@ public class MainActivity extends AppCompatActivity {
public void onDestroy() {
unbindService(connection);
unregisterReceiver(songChangeReceiver);
mSeekBarThread.interrupt();
if(mSeekBarThread!=null) mSeekBarThread.interrupt();
Song song = FileHelper.getSong();
song.setCurrentTime(mPlayStatusBinder.getCurrentTime());
Log.d(TAG, "onServiceDisconnected: " + song.getCurrentTime());

@ -15,6 +15,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.LinearLayout;
import android.widget.TextView;
@ -22,6 +23,8 @@ import com.example.musicplayer.R;
import com.example.musicplayer.adapter.ExpandableListViewAdapter;
import com.example.musicplayer.adapter.HistoryAdapter;
import com.example.musicplayer.constant.BroadcastName;
import com.example.musicplayer.entiy.Album;
import com.example.musicplayer.entiy.AlbumCollection;
import com.example.musicplayer.entiy.HistorySong;
import com.example.musicplayer.entiy.LocalSong;
import com.example.musicplayer.entiy.Love;
@ -30,6 +33,9 @@ import com.example.musicplayer.widget.MyListView;
import org.litepal.LitePal;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
@ -38,16 +44,20 @@ public class MainFragment extends Fragment {
private LinearLayout mFunctionLinear;
private MyListView myListView;
private ExpandableListAdapter mAdapter;
private ExpandableListViewAdapter mAdapter;
private LinearLayout mLocalMusicLinear, mCollectionLinear, mHistoryMusicLinear;
private Button playerBtn;
private TextView mLocalMusicNum, mLoveMusicNum, mHistoryMusicNum;
private TextView mSeekBtn;
private List<List<AlbumCollection>> mAlbumCollectionList;
private List<AlbumCollection> mLoveAlbumList;
private boolean oneExpand;
private boolean twoExpand;
private String[] mGroupStrings = {"自建歌单", "收藏歌单"};
private String[][] mSongStrings = {
{"我喜欢", "默认收藏", "哎呀不错哦", "残渊"},
{"啦啦", "哈哈"}
{"我喜欢"},
{"Jay", "魔杰座"}
};
//注册广播
private IntentFilter intentFilter;
@ -76,20 +86,32 @@ public class MainFragment extends Fragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mAdapter = new ExpandableListViewAdapter(getActivity(), mGroupStrings, mSongStrings);
mLoveAlbumList = new ArrayList<>();
mAlbumCollectionList = new ArrayList<>();
AlbumCollection albumCollection = new AlbumCollection();
albumCollection.setAlbumName("我喜欢");
albumCollection.setSingerName("袁健策");
mLoveAlbumList.add(albumCollection);
mAlbumCollectionList.add(mLoveAlbumList);
mAlbumCollectionList.add(orderCollection(LitePal.findAll(AlbumCollection.class)));
mAdapter = new ExpandableListViewAdapter(getActivity(), mGroupStrings, mAlbumCollectionList);
myListView.setAdapter(mAdapter);
//注册广播
intentFilter = new IntentFilter();
intentFilter.addAction(BroadcastName.SONG_CHANGE);
intentFilter.addAction(BroadcastName.COLLECTION_ALBUM_CHANGE);
songChangeReceiver = new SongChangeReceiver();
getActivity().registerReceiver(songChangeReceiver, intentFilter);
onClick();
}
@Override
public void onDestroy() {
super.onDestroy();
getActivity().unregisterReceiver(songChangeReceiver);
}
@Override
public void onResume() {
super.onResume();
@ -125,6 +147,50 @@ public class MainFragment extends Fragment {
replaceFragment(new HistoryFragment());
}
});
myListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
if (groupPosition == 0) {
oneExpand = true;
} else if (groupPosition == 1) {
twoExpand = true;
}
}
});
myListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
if (groupPosition == 0) {
oneExpand = false;
} else if (groupPosition == 1) {
twoExpand = false;
}
}
});
myListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
return false;
}
});
mAdapter.setOnChildItemClickListener(new ExpandableListViewAdapter.OnChildItemClickListener() {
@Override
public void onClick(int groupPosition, int childPosition) {
if (groupPosition == 0 && childPosition == 0) {
replaceFragment(new CollectionFragment());
} else if (groupPosition == 1) {
AlbumCollection albumCollection = mAlbumCollectionList.get(groupPosition).get(childPosition);
replaceFragment(AlbumContentFragment.newInstance(
albumCollection.getAlbumId(),
albumCollection.getAlbumName(),
albumCollection.getAlbumPic(),
albumCollection.getSingerName(),
albumCollection.getPublicTime()
));
}
}
});
}
@ -140,16 +206,41 @@ public class MainFragment extends Fragment {
transaction.addToBackStack(null);
transaction.commit();
}
private void showMusicNum() {
mLoveMusicNum.setText("" + LitePal.findAll(LocalSong.class).size());
mLoveMusicNum.setText("" + LitePal.findAll(Love.class).size());
mHistoryMusicNum.setText("" + LitePal.findAll(HistorySong.class).size());
}
private List<AlbumCollection> orderCollection(List<AlbumCollection> tempList) {
List<AlbumCollection> mAlbumCollectionList = new ArrayList<>();
for (int i = tempList.size() - 1; i >= 0; i--) {
mAlbumCollectionList.add(tempList.get(i));
}
return mAlbumCollectionList;
}
private class SongChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(BroadcastName.SONG_CHANGE)) {
mHistoryMusicNum.setText("" + LitePal.findAll(HistorySong.class).size());
} else if (action.equals(BroadcastName.COLLECTION_ALBUM_CHANGE)) {
mAlbumCollectionList.clear();
mAlbumCollectionList.add(mLoveAlbumList);
mAlbumCollectionList.add(orderCollection(LitePal.findAll(AlbumCollection.class)));
if (twoExpand) {
myListView.collapseGroup(1);
myListView.expandGroup(1);
} else {
myListView.expandGroup(1);
myListView.collapseGroup(1);
}
}
}
}

@ -365,7 +365,7 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View {
mLoveBtn.setSelected(true);
mPresenter.saveToLove(FileHelper.getSong());
}
isLove = !isLove;
}
});
}
@ -443,7 +443,6 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View {
@Override
public void showLoveAnim() {
mLoveBtn.setSelected(true);
AnimatorSet animatorSet = (AnimatorSet) AnimatorInflater.loadAnimator(PlayActivity.this, R.animator.favorites_anim);
animatorSet.setTarget(mLoveBtn);
animatorSet.start();

@ -1,49 +0,0 @@
package com.example.musicplayer.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.ScrollView;
/**
* Created by on 2018/9/25.
*/
public class MyScrollView extends ScrollView {
private int mLastYIntercept=0;
public MyScrollView(Context context) {
super(context);
}
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
super.onInterceptTouchEvent(event);
boolean intercepted = false;
int y = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
intercepted = false;
break;
case MotionEvent.ACTION_MOVE:
intercepted=true;
break;
case MotionEvent.ACTION_UP:
intercepted = false;
break;
}
Log.d("jsyjst", "----------------"+intercepted);
mLastYIntercept=y;
return intercepted;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

@ -173,7 +173,7 @@
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="20dp"
android:background="@drawable/love" />
android:background="@drawable/selector_love" />
</RelativeLayout>
</com.example.musicplayer.widget.BackgroundAnimationRelativeLayout>

@ -26,4 +26,9 @@
</RelativeLayout>
</ScrollView>
<View
android:layout_width="match_parent"
android:layout_height="65dp"
android:background="@color/transparent"
android:layout_alignParentBottom="true"/>
</RelativeLayout>

@ -44,7 +44,7 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_height="1px"
android:background="@color/line"/>

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/logo_white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<android.support.v7.widget.CardView
android:id="@+id/iv_album_pic"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginEnd="15dp"
android:layout_marginStart="15dp"
app:cardCornerRadius="5dp">
<ImageView
android:id="@+id/iv_album"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/jay"
/>
</android.support.v7.widget.CardView>
</LinearLayout>

@ -2,14 +2,15 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
android:background="@color/translucent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="15dp">
android:layout_marginTop="10dp">
<TextView
android:id="@+id/tv_new_song"
@ -17,21 +18,22 @@
android:layout_height="wrap_content"
android:text="@string/song_list"
android:textColor="@color/white"
android:textSize="18sp" />
android:textSize="16sp"
android:layout_centerVertical="true"/>
<ImageView
android:id="@+id/iv_point"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_centerVertical="true"
android:layout_marginStart="10dp"
android:layout_toRightOf="@+id/tv_new_song"
android:src="@drawable/down" />
<ImageView
android:id="@+id/iv_new_song_list"
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/iv_add"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="20dp"

@ -1,17 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.andexert.library.RippleView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="5dp"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v7.widget.CardView
android:id="@+id/iv_album_pic"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:background="@color/white"
app:cardCornerRadius="8dp"
>
<ImageView
android:id="@+id/iv_face"
android:layout_gravity="center_vertical"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/background"
android:id="@+id/iv_album"
android:layout_width="60dp"
android:layout_height="60dp"
android:scaleType="centerCrop"
android:layout_marginStart="10dp"/>
android:src="@drawable/love"
/>
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_gravity="center_vertical"
@ -22,25 +40,25 @@
android:layout_marginTop="8dp"
>
<TextView
android:id="@+id/tv_song_list_name"
android:id="@+id/tv_album_name"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/love"
android:textColor="@color/white"
android:textSize="16sp"
/>
<TextView
android:layout_marginTop="5dp"
android:id="@+id/tv_author"
android:layout_marginTop="3dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="442首113首已下载"
android:textColor="#4f9a9f"
android:text="共32首"
android:textColor="@color/white_blue"
android:layout_marginBottom="15dp"
android:textSize="14sp"
/>
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="@color/white_easy"/>
</LinearLayout>
</LinearLayout>
</com.andexert.library.RippleView>

@ -4,23 +4,20 @@
android:layout_height="match_parent"
android:layout_below="@+id/linear_function"
android:layout_marginTop="20dp"
android:background="@color/translucent"
android:orientation="vertical">
<com.example.musicplayer.widget.MyListView
android:id="@+id/expand_lv_song_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/seekColor"
android:dividerHeight="1dip">
android:divider="@color/line_default"
android:childDivider="@color/line_default"
android:groupIndicator="@null"
android:dividerHeight="1dip"
android:layout_marginBottom="70dp">
</com.example.musicplayer.widget.MyListView>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@+id/expand_lv_song_list"
android:background="@color/seekColor" />

@ -24,8 +24,8 @@
<ImageView
android:id="@+id/iv_album"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="60dp"
android:layout_height="60dp"
android:scaleType="centerCrop"
android:src="@drawable/welcome"
/>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/btn_love"
android:title="收藏"
android:icon="@drawable/selector_love"
app:showAsAction="always"/>
</menu>

@ -23,4 +23,5 @@
<color name="white_blue">#caeefc</color>
<color name="line">#50aebcbf</color>
<color name="blue">#555</color>
<color name="line_default">#1E000000</color>
</resources>

Loading…
Cancel
Save