├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── delaroystudios │ │ └── cardview │ │ ├── Album.java │ │ ├── AlbumsAdapter.java │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_dots.png │ ├── drawable-mdpi │ └── ic_dots.png │ ├── drawable-xhdpi │ └── ic_dots.png │ ├── drawable-xxhdpi │ └── ic_dots.png │ ├── drawable │ ├── album1.png │ ├── album10.png │ ├── album11.png │ ├── album2.PNG │ ├── album3.png │ ├── album4.png │ ├── album5.png │ ├── album6.png │ ├── album7.png │ ├── album8.png │ ├── album9.png │ └── cover.jpg │ ├── layout │ ├── activity_main.xml │ ├── album_card.xml │ └── content_main.xml │ ├── menu │ ├── menu_album.xml │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── mipmap-xxxhdpi │ └── ic_launcher.png │ ├── values-v21 │ └── styles.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | CardView -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | 48 | 49 | 50 | 1.8 51 | 52 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cardview 2 | Test project for cardview 3 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | applicationId "com.delaroystudios.cardview" 9 | minSdkVersion 16 10 | targetSdkVersion 23 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:appcompat-v7:23.3.0' 26 | compile 'com.android.support:design:23.3.0' 27 | 28 | // RecyclerView 29 | compile 'com.android.support:recyclerview-v7:23.3.+' 30 | 31 | // CardView 32 | compile 'com.android.support:cardview-v7:23.3.+' 33 | 34 | // Glide 35 | compile 'com.github.bumptech.glide:glide:3.7.0' 36 | } 37 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/apple/Softwares/adt-bundle-mac-x86_64-20140702/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/delaroystudios/cardview/Album.java: -------------------------------------------------------------------------------- 1 | package com.delaroystudios.cardview; 2 | 3 | /** 4 | * Created by Lincoln on 18/05/16. 5 | */ 6 | public class Album { 7 | private String name; 8 | private int numOfSongs; 9 | private int thumbnail; 10 | 11 | public Album() { 12 | } 13 | 14 | public Album(String name, int numOfSongs, int thumbnail) { 15 | this.name = name; 16 | this.numOfSongs = numOfSongs; 17 | this.thumbnail = thumbnail; 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | 28 | public int getNumOfSongs() { 29 | return numOfSongs; 30 | } 31 | 32 | public void setNumOfSongs(int numOfSongs) { 33 | this.numOfSongs = numOfSongs; 34 | } 35 | 36 | public int getThumbnail() { 37 | return thumbnail; 38 | } 39 | 40 | public void setThumbnail(int thumbnail) { 41 | this.thumbnail = thumbnail; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/delaroystudios/cardview/AlbumsAdapter.java: -------------------------------------------------------------------------------- 1 | package com.delaroystudios.cardview; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.PopupMenu; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.MenuInflater; 8 | import android.view.MenuItem; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.ImageView; 12 | import android.widget.TextView; 13 | import android.widget.Toast; 14 | 15 | import com.bumptech.glide.Glide; 16 | 17 | import java.util.List; 18 | 19 | /** 20 | * Created by Ravi Tamada on 18/05/16. 21 | */ 22 | public class AlbumsAdapter extends RecyclerView.Adapter { 23 | 24 | private Context mContext; 25 | private List albumList; 26 | 27 | public class MyViewHolder extends RecyclerView.ViewHolder { 28 | public TextView title, count; 29 | public ImageView thumbnail, overflow; 30 | 31 | public MyViewHolder(View view) { 32 | super(view); 33 | title = (TextView) view.findViewById(R.id.title); 34 | count = (TextView) view.findViewById(R.id.count); 35 | thumbnail = (ImageView) view.findViewById(R.id.thumbnail); 36 | overflow = (ImageView) view.findViewById(R.id.overflow); 37 | } 38 | } 39 | 40 | 41 | public AlbumsAdapter(Context mContext, List albumList) { 42 | this.mContext = mContext; 43 | this.albumList = albumList; 44 | } 45 | 46 | @Override 47 | public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 48 | View itemView = LayoutInflater.from(parent.getContext()) 49 | .inflate(R.layout.album_card, parent, false); 50 | 51 | return new MyViewHolder(itemView); 52 | } 53 | 54 | @Override 55 | public void onBindViewHolder(final MyViewHolder holder, int position) { 56 | Album album = albumList.get(position); 57 | holder.title.setText(album.getName()); 58 | holder.count.setText(album.getNumOfSongs() + " songs"); 59 | 60 | // loading album cover using Glide library 61 | Glide.with(mContext).load(album.getThumbnail()).into(holder.thumbnail); 62 | 63 | holder.overflow.setOnClickListener(new View.OnClickListener() { 64 | @Override 65 | public void onClick(View view) { 66 | showPopupMenu(holder.overflow); 67 | } 68 | }); 69 | } 70 | 71 | /** 72 | * Showing popup menu when tapping on 3 dots 73 | */ 74 | private void showPopupMenu(View view) { 75 | // inflate menu 76 | PopupMenu popup = new PopupMenu(mContext, view); 77 | MenuInflater inflater = popup.getMenuInflater(); 78 | inflater.inflate(R.menu.menu_album, popup.getMenu()); 79 | popup.setOnMenuItemClickListener(new MyMenuItemClickListener()); 80 | popup.show(); 81 | } 82 | 83 | /** 84 | * Click listener for popup menu items 85 | */ 86 | class MyMenuItemClickListener implements PopupMenu.OnMenuItemClickListener { 87 | 88 | public MyMenuItemClickListener() { 89 | } 90 | 91 | @Override 92 | public boolean onMenuItemClick(MenuItem menuItem) { 93 | switch (menuItem.getItemId()) { 94 | case R.id.action_add_favourite: 95 | Toast.makeText(mContext, "Add to favourite", Toast.LENGTH_SHORT).show(); 96 | return true; 97 | case R.id.action_play_next: 98 | Toast.makeText(mContext, "Play next", Toast.LENGTH_SHORT).show(); 99 | return true; 100 | default: 101 | } 102 | return false; 103 | } 104 | } 105 | 106 | @Override 107 | public int getItemCount() { 108 | return albumList.size(); 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /app/src/main/java/com/delaroystudios/cardview/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.delaroystudios.cardview; 2 | 3 | import android.content.res.Resources; 4 | import android.graphics.Rect; 5 | import android.os.Bundle; 6 | import android.support.design.widget.AppBarLayout; 7 | import android.support.design.widget.CollapsingToolbarLayout; 8 | import android.support.v7.app.AppCompatActivity; 9 | import android.support.v7.widget.DefaultItemAnimator; 10 | import android.support.v7.widget.GridLayoutManager; 11 | import android.support.v7.widget.RecyclerView; 12 | import android.support.v7.widget.Toolbar; 13 | import android.util.TypedValue; 14 | import android.view.View; 15 | import android.widget.ImageView; 16 | 17 | import com.bumptech.glide.Glide; 18 | 19 | import java.util.ArrayList; 20 | import java.util.List; 21 | 22 | public class MainActivity extends AppCompatActivity { 23 | 24 | private RecyclerView recyclerView; 25 | private AlbumsAdapter adapter; 26 | private List albumList; 27 | 28 | @Override 29 | protected void onCreate(Bundle savedInstanceState) { 30 | super.onCreate(savedInstanceState); 31 | setContentView(R.layout.activity_main); 32 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 33 | setSupportActionBar(toolbar); 34 | 35 | initCollapsingToolbar(); 36 | 37 | recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 38 | 39 | albumList = new ArrayList<>(); 40 | adapter = new AlbumsAdapter(this, albumList); 41 | 42 | RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(this, 2); 43 | recyclerView.setLayoutManager(mLayoutManager); 44 | recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true)); 45 | recyclerView.setItemAnimator(new DefaultItemAnimator()); 46 | recyclerView.setAdapter(adapter); 47 | 48 | prepareAlbums(); 49 | 50 | try { 51 | Glide.with(this).load(R.drawable.cover).into((ImageView) findViewById(R.id.backdrop)); 52 | } catch (Exception e) { 53 | e.printStackTrace(); 54 | } 55 | } 56 | 57 | /** 58 | * Initializing collapsing toolbar 59 | * Will show and hide the toolbar title on scroll 60 | */ 61 | private void initCollapsingToolbar() { 62 | final CollapsingToolbarLayout collapsingToolbar = 63 | (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); 64 | collapsingToolbar.setTitle(" "); 65 | AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar); 66 | appBarLayout.setExpanded(true); 67 | 68 | // hiding & showing the title when toolbar expanded & collapsed 69 | appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { 70 | boolean isShow = false; 71 | int scrollRange = -1; 72 | 73 | @Override 74 | public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { 75 | if (scrollRange == -1) { 76 | scrollRange = appBarLayout.getTotalScrollRange(); 77 | } 78 | if (scrollRange + verticalOffset == 0) { 79 | collapsingToolbar.setTitle(getString(R.string.app_name)); 80 | isShow = true; 81 | } else if (isShow) { 82 | collapsingToolbar.setTitle(" "); 83 | isShow = false; 84 | } 85 | } 86 | }); 87 | } 88 | 89 | /** 90 | * Adding few albums for testing 91 | */ 92 | private void prepareAlbums() { 93 | int[] covers = new int[]{ 94 | R.drawable.album1, 95 | R.drawable.album2, 96 | R.drawable.album3, 97 | R.drawable.album4, 98 | R.drawable.album5, 99 | R.drawable.album6, 100 | R.drawable.album7, 101 | R.drawable.album8, 102 | R.drawable.album9, 103 | R.drawable.album10, 104 | R.drawable.album11}; 105 | 106 | Album a = new Album("Maroon5", 13, covers[0]); 107 | albumList.add(a); 108 | 109 | a = new Album("Sugar Ray", 8, covers[1]); 110 | albumList.add(a); 111 | 112 | a = new Album("Bon Jovi", 11, covers[2]); 113 | albumList.add(a); 114 | 115 | a = new Album("The Corrs", 12, covers[3]); 116 | albumList.add(a); 117 | 118 | a = new Album("The Cranberries", 14, covers[4]); 119 | albumList.add(a); 120 | 121 | a = new Album("Westlife", 1, covers[5]); 122 | albumList.add(a); 123 | 124 | a = new Album("Black Eyed Peas", 11, covers[6]); 125 | albumList.add(a); 126 | 127 | a = new Album("VivaLaVida", 14, covers[7]); 128 | albumList.add(a); 129 | 130 | a = new Album("The Cardigans", 11, covers[8]); 131 | albumList.add(a); 132 | 133 | a = new Album("Pussycat Dolls", 17, covers[9]); 134 | albumList.add(a); 135 | 136 | adapter.notifyDataSetChanged(); 137 | } 138 | 139 | /** 140 | * RecyclerView item decoration - give equal margin around grid item 141 | */ 142 | public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration { 143 | 144 | private int spanCount; 145 | private int spacing; 146 | private boolean includeEdge; 147 | 148 | public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) { 149 | this.spanCount = spanCount; 150 | this.spacing = spacing; 151 | this.includeEdge = includeEdge; 152 | } 153 | 154 | @Override 155 | public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 156 | int position = parent.getChildAdapterPosition(view); // item position 157 | int column = position % spanCount; // item column 158 | 159 | if (includeEdge) { 160 | outRect.left = spacing - column * spacing / spanCount; // spacing - column * ((1f / spanCount) * spacing) 161 | outRect.right = (column + 1) * spacing / spanCount; // (column + 1) * ((1f / spanCount) * spacing) 162 | 163 | if (position < spanCount) { // top edge 164 | outRect.top = spacing; 165 | } 166 | outRect.bottom = spacing; // item bottom 167 | } else { 168 | outRect.left = column * spacing / spanCount; // column * ((1f / spanCount) * spacing) 169 | outRect.right = spacing - (column + 1) * spacing / spanCount; // spacing - (column + 1) * ((1f / spanCount) * spacing) 170 | if (position >= spanCount) { 171 | outRect.top = spacing; // item top 172 | } 173 | } 174 | } 175 | } 176 | 177 | /** 178 | * Converting dp to pixel 179 | */ 180 | private int dpToPx(int dp) { 181 | Resources r = getResources(); 182 | return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics())); 183 | } 184 | } 185 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable-hdpi/ic_dots.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable-mdpi/ic_dots.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable-xhdpi/ic_dots.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable-xxhdpi/ic_dots.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album2.PNG -------------------------------------------------------------------------------- /app/src/main/res/drawable/album3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/album9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/album9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/drawable/cover.jpg -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | 27 | 28 | 31 | 32 | 39 | 40 | 46 | 47 | 54 | 55 | 61 | 62 | 63 | 64 | 65 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /app/src/main/res/layout/album_card.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 14 | 15 | 18 | 19 | 26 | 27 | 37 | 38 | 47 | 48 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_album.xml: -------------------------------------------------------------------------------- 1 | 4 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delaroy/AndroidCardView/d7bb31241cef7c1326dab268349ffb808ce9f6a3/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #F50057 4 | #F50057 5 | #FF4081 6 | #f1f5f8 7 | #4c4c4c 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 10dp 7 | 250dp 8 | 30dp 9 | 18dp 10 | 5dp 11 | 0dp 12 | 160dp 13 | 10dp 14 | 15dp 15 | 5dp 16 | 12dp 17 | 20dp 18 | 30dp 19 | 10dp 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Card View 3 | Settings 4 | Add to Favourites 5 | Play Next 6 | LOVE MUSICS 7 | This season top 20 music 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 14 |