├── .gitignore ├── .idea ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── libraries │ ├── adapters_1_2_1.xml │ ├── animated_vector_drawable_25_1_0.xml │ ├── appcompat_v7_25_1_0.xml │ ├── banner_1_4_8.xml │ ├── baseLibrary_2_2_3.xml │ ├── compiler_2_2_3.xml │ ├── glide_3_7_0.xml │ ├── juniversalchardet_1_0_3.xml │ ├── library_1_2_1.xml │ ├── skin_support_1_2_2.xml │ ├── skin_support_design_1_2_1.xml │ ├── skin_support_design_release_.xml │ ├── skin_support_release_.xml │ ├── support_annotations_25_1_0.xml │ ├── support_compat_25_1_0.xml │ ├── support_core_ui_25_1_0.xml │ ├── support_core_utils_25_1_0.xml │ ├── support_fragment_25_1_0.xml │ ├── support_media_compat_25_1_0.xml │ ├── support_v4_25_1_0.xml │ ├── support_vector_drawable_25_1_0.xml │ └── xrecyclerview_1_3_2.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── assets │ └── skins │ │ ├── night.skin │ │ └── white.skin │ ├── java │ └── com │ │ └── ximsfei │ │ └── skindemo │ │ ├── App.java │ │ ├── DataManager.java │ │ ├── MainActivity.java │ │ ├── SplashActivity.java │ │ ├── bean │ │ ├── ImageItem.java │ │ └── RecommendItem.java │ │ ├── ui │ │ ├── AboutSkinLibActivity.java │ │ ├── DiscoverFragment.java │ │ ├── FriendsFragment.java │ │ ├── MusicFragment.java │ │ ├── SkinLibActivity.java │ │ ├── adapter │ │ │ ├── RecommendAdapter.java │ │ │ ├── SkinLibAdapter.java │ │ │ ├── SongMenuAdapter.java │ │ │ ├── TabFragmentPagerAdapter.java │ │ │ └── baseadapter │ │ │ │ ├── BaseRecyclerViewAdapter.java │ │ │ │ ├── BaseRecyclerViewHolder.java │ │ │ │ └── OnItemClickListener.java │ │ ├── base │ │ │ ├── BaseActivity.java │ │ │ └── BaseFragment.java │ │ ├── discover │ │ │ ├── RadioFragment.java │ │ │ ├── RankingFragment.java │ │ │ ├── RecommendFragment.java │ │ │ └── SongMenuFragment.java │ │ └── friends │ │ │ ├── ContactsFragment.java │ │ │ ├── FeedsFragment.java │ │ │ └── NearbyFragment.java │ │ ├── utils │ │ ├── SPUtils.java │ │ └── TimeUtil.java │ │ └── widget │ │ └── SquareImageView.java │ └── res │ ├── anim │ ├── screen_zoom_in.xml │ └── screen_zoom_out.xml │ ├── color │ ├── day_recommend_color_selector.xml │ ├── fine_song_background_selector.xml │ ├── select_song_menu_stroke_color.xml │ └── selectable_text_color.xml │ ├── drawable-nodpi │ ├── b_1.png │ ├── b_2.png │ ├── b_3.png │ ├── b_4.png │ ├── b_5.jpg │ ├── b_6.jpg │ ├── ic_screen_default.png │ ├── splash0.jpg │ ├── splash1.jpg │ ├── splash10.jpg │ ├── splash11.jpg │ ├── splash12.jpg │ ├── splash13.jpg │ ├── splash14.jpg │ ├── splash15.jpg │ ├── splash16.jpg │ ├── splash2.jpg │ ├── splash3.jpg │ ├── splash4.jpg │ ├── splash5.jpg │ ├── splash6.jpg │ ├── splash7.jpg │ ├── splash8.jpg │ └── splash9.jpg │ ├── drawable-xhdpi │ ├── header_layout_bg.jpg │ ├── home_six_1.png │ ├── home_six_10.png │ ├── home_six_11.png │ ├── home_six_12.png │ ├── home_six_13.png │ ├── home_six_14.png │ ├── home_six_15.png │ ├── home_six_16.png │ ├── home_six_17.png │ ├── home_six_18.png │ ├── home_six_19.png │ ├── home_six_2.png │ ├── home_six_20.png │ ├── home_six_21.png │ ├── home_six_22.png │ ├── home_six_23.png │ ├── home_six_24.png │ ├── home_six_25.png │ ├── home_six_26.png │ ├── home_six_27.png │ ├── home_six_28.png │ ├── home_six_29.png │ ├── home_six_3.png │ ├── home_six_30.png │ ├── home_six_4.png │ ├── home_six_5.png │ ├── home_six_6.png │ ├── home_six_7.png │ ├── home_six_8.png │ ├── home_six_9.png │ ├── message.png │ └── photo.jpeg │ ├── drawable-xxhdpi │ ├── actionbar_discover_normal.png │ ├── actionbar_discover_selected.png │ ├── actionbar_friends_normal.png │ ├── actionbar_friends_selected.png │ ├── actionbar_music_normal.png │ ├── actionbar_music_selected.png │ ├── android_group.png │ ├── home_banner_1.png │ ├── home_banner_10.png │ ├── home_banner_11.png │ ├── home_banner_12.png │ ├── home_banner_2.png │ ├── home_banner_3.png │ ├── home_banner_4.png │ ├── home_banner_5.png │ ├── home_banner_6.png │ ├── home_banner_7.png │ ├── home_banner_8.png │ ├── home_banner_9.png │ ├── ic_back.png │ ├── ic_banner_grey.png │ ├── ic_banner_red.png │ ├── ic_birthday_normal.png │ ├── ic_birthday_pressed.png │ ├── ic_day_normal.png │ ├── ic_day_pressed.png │ ├── ic_daynight_indicator.png │ ├── ic_driving_mode_indicator.png │ ├── ic_fm_normal.png │ ├── ic_fm_pressed.png │ ├── ic_indicator_0.png │ ├── ic_indicator_1.png │ ├── ic_indicator_2.png │ ├── ic_indicator_3.png │ ├── ic_indicator_4.png │ ├── ic_menu.png │ ├── ic_message_indicator.png │ ├── ic_more_indicator.png │ ├── ic_music_alarm_indicator.png │ ├── ic_online_indicator.png │ ├── ic_rank_normal.png │ ├── ic_rank_pressed.png │ ├── ic_scanner_indicator.png │ ├── ic_search_white.png │ ├── ic_shopping_indicator.png │ ├── ic_skin_selected_indicator.png │ ├── ic_sound_hound_indicator.png │ ├── ic_theme_indicator.png │ ├── ic_timing_indicator.png │ ├── ic_vip_indicator.png │ ├── loading.png │ ├── login_bg.jpg │ ├── sign_in_normal.png │ ├── sign_in_pressed.png │ ├── skin_color.png │ ├── skin_red.png │ └── skin_white.png │ ├── drawable │ ├── actionbar_discover.xml │ ├── actionbar_friends.xml │ ├── actionbar_music.xml │ ├── day_selector.xml │ ├── fm_selector.xml │ ├── home_adjust_background.xml │ ├── rank_selector.xml │ ├── select_song_menu_background.xml │ ├── shape_bg_level.xml │ ├── shape_bg_sign.xml │ └── sign_in_icon.xml │ ├── layout │ ├── activity_about_skin_lib.xml │ ├── activity_main.xml │ ├── activity_skin_lib.xml │ ├── activity_splash.xml │ ├── footer_recommend_item.xml │ ├── fragment_contacts.xml │ ├── fragment_discover.xml │ ├── fragment_feeds.xml │ ├── fragment_friends.xml │ ├── fragment_music.xml │ ├── fragment_nearby.xml │ ├── fragment_radio.xml │ ├── fragment_ranking.xml │ ├── fragment_recommend.xml │ ├── fragment_song.xml │ ├── header_recommend_item.xml │ ├── header_skin_lib.xml │ ├── header_song_item.xml │ ├── main_header_layout.xml │ ├── one_item.xml │ ├── recommend_item.xml │ └── skin_lib_item.xml │ ├── menu │ ├── menu_main_options.xml │ └── menu_skin_lib_options.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 ├── skin-night ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ └── res │ ├── color │ ├── day_recommend_color_selector.xml │ └── selectable_text_color.xml │ ├── drawable-xxhdpi │ ├── actionbar_discover_normal.png │ ├── actionbar_discover_selected.png │ ├── actionbar_friends_normal.png │ ├── actionbar_friends_selected.png │ ├── actionbar_music_normal.png │ ├── actionbar_music_selected.png │ ├── ic_day_normal.png │ ├── ic_day_pressed.png │ ├── ic_fm_normal.png │ ├── ic_fm_pressed.png │ ├── ic_indicator_0.png │ ├── ic_indicator_1.png │ ├── ic_indicator_2.png │ ├── ic_indicator_3.png │ ├── ic_indicator_4.png │ ├── ic_rank_normal.png │ └── ic_rank_pressed.png │ ├── drawable │ ├── actionbar_discover.xml │ ├── actionbar_friends.xml │ ├── actionbar_music.xml │ ├── day_selector.xml │ ├── fm_selector.xml │ ├── home_adjust_background.xml │ ├── rank_selector.xml │ └── shape_bg_sign.xml │ └── values │ ├── colors.xml │ └── strings.xml └── skin-white ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src └── main ├── AndroidManifest.xml └── res ├── drawable-xxhdpi ├── actionbar_discover_normal.png ├── actionbar_discover_selected.png ├── actionbar_friends_normal.png ├── actionbar_friends_selected.png ├── actionbar_music_normal.png ├── actionbar_music_selected.png ├── ic_back.png └── ic_menu.png ├── drawable ├── actionbar_discover.xml ├── actionbar_friends.xml └── actionbar_music.xml └── values ├── colors.xml └── strings.xml /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | 35 | # Intellij 36 | *.iml 37 | .idea/workspace.xml 38 | 39 | # Keystore files 40 | *.jks 41 | -------------------------------------------------------------------------------- /.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 | 20 | 21 | -------------------------------------------------------------------------------- /.idea/libraries/adapters_1_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/animated_vector_drawable_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/appcompat_v7_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/banner_1_4_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/baseLibrary_2_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/compiler_2_2_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/glide_3_7_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/juniversalchardet_1_0_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/libraries/library_1_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/skin_support_1_2_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/skin_support_design_1_2_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/skin_support_design_release_.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/skin_support_release_.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/support_annotations_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/support_compat_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/support_core_ui_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/support_core_utils_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/support_fragment_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/support_media_compat_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/support_v4_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/libraries/support_vector_drawable_25_1_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/xrecyclerview_1_3_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Skin-Demo 2 | 3 | ## 介绍 4 | 5 | [app](app) // 仿网易云音乐UI 官方红 6 | 7 | [skin-night](skin-night) // 夜间模式皮肤包 8 | 9 | [skin-white](skin-white) // 官方白皮肤包 10 | 11 | [换肤框架实现](https://github.com/ximsfei/Android-skin-support) 12 | 13 | 下载[demo apk](https://github.com/ximsfei/Res/blob/master/skin-demo/app-debug.apk) 14 | 15 | ![red 1](https://github.com/ximsfei/Res/blob/master/skin-demo/red_1.png) 16 | ![red 2](https://github.com/ximsfei/Res/blob/master/skin-demo/red_2.png) 17 | ![red 3](https://github.com/ximsfei/Res/blob/master/skin-demo/red_3.png) 18 | 19 | ![white 1](https://github.com/ximsfei/Res/blob/master/skin-demo/white_1.png) 20 | ![white 2](https://github.com/ximsfei/Res/blob/master/skin-demo/white_2.png) 21 | ![white 3](https://github.com/ximsfei/Res/blob/master/skin-demo/white_3.png) 22 | 23 | ![night 1](https://github.com/ximsfei/Res/blob/master/skin-demo/night_1.png) 24 | ![night 2](https://github.com/ximsfei/Res/blob/master/skin-demo/night_2.png) 25 | ![night 3](https://github.com/ximsfei/Res/blob/master/skin-demo/night_3.png) 26 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 25 5 | buildToolsVersion "25.0.2" 6 | defaultConfig { 7 | applicationId "com.ximsfei.skindemo" 8 | minSdkVersion 15 9 | targetSdkVersion 25 10 | aaptOptions.cruncherEnabled = false 11 | aaptOptions.useNewCruncher = false 12 | versionCode 1 13 | versionName "1.0" 14 | } 15 | buildTypes { 16 | release { 17 | minifyEnabled false 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 19 | } 20 | } 21 | dataBinding { 22 | enabled = true 23 | } 24 | } 25 | 26 | repositories { 27 | flatDir { 28 | dirs 'libs' 29 | } 30 | } 31 | 32 | dependencies { 33 | compile fileTree(dir: 'libs', include: ['*.jar']) 34 | compile 'com.android.support:appcompat-v7:25.1.0' 35 | compile 'com.android.support:design:25.1.0' 36 | 37 | compile 'com.jcodecraeer:xrecyclerview:1.3.2' 38 | compile 'com.youth.banner:banner:1.4.8' 39 | 40 | compile 'com.github.bumptech.glide:glide:3.7.0' 41 | 42 | compile 'skin.support:skin-support:1.2.2' 43 | compile 'skin.support:skin-support-design:1.2.1' 44 | 45 | // compile(name: 'skin-support-design-release', ext: 'aar') 46 | // compile(name: 'skin-support-release', ext: 'aar') 47 | } 48 | -------------------------------------------------------------------------------- /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 /home/ximsfei/Android/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 | 6 | 7 | 8 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/assets/skins/night.skin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/assets/skins/night.skin -------------------------------------------------------------------------------- /app/src/main/assets/skins/white.skin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/assets/skins/white.skin -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/App.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo; 2 | 3 | import android.app.Application; 4 | 5 | import com.ximsfei.skindemo.utils.SPUtils; 6 | 7 | import skin.support.SkinCompatManager; 8 | import skin.support.design.SkinMaterialManager; 9 | 10 | /** 11 | * Created by ximsfei on 17-1-8. 12 | */ 13 | 14 | public class App extends Application { 15 | @Override 16 | public void onCreate() { 17 | super.onCreate(); 18 | SkinMaterialManager.init(this); 19 | SkinCompatManager.init(this).loadSkin(); 20 | SPUtils.init(this); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/DataManager.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo; 2 | 3 | /** 4 | * Created by pengfengwang on 2017/1/15. 5 | */ 6 | 7 | public class DataManager { 8 | public static final String NIGHT_SKIN = "night.skin"; 9 | public static final String[] SKIN_NAMES = { 10 | "官方红", "官方白", "自选颜色" 11 | }; 12 | public static final String[] SKIN_LIBS = { 13 | "", "white.skin", "color.skin" 14 | }; 15 | public static final int[] BANNER_IMAGES = { 16 | R.drawable.home_banner_1, R.drawable.home_banner_2, R.drawable.home_banner_3, 17 | R.drawable.home_banner_4, R.drawable.home_banner_5, R.drawable.home_banner_6, 18 | R.drawable.home_banner_7, R.drawable.home_banner_8, R.drawable.home_banner_9, 19 | R.drawable.home_banner_10, R.drawable.home_banner_11, R.drawable.home_banner_12 20 | }; 21 | public static final int[] IMAGES = { 22 | R.drawable.home_six_1, R.drawable.home_six_2, R.drawable.home_six_3, 23 | R.drawable.home_six_4, R.drawable.home_six_5, R.drawable.home_six_6, 24 | R.drawable.home_six_7, R.drawable.home_six_8, R.drawable.home_six_9, 25 | R.drawable.home_six_10, R.drawable.home_six_11, R.drawable.home_six_12, 26 | R.drawable.home_six_13, R.drawable.home_six_14, R.drawable.home_six_15, 27 | R.drawable.home_six_16, R.drawable.home_six_17, R.drawable.home_six_18, 28 | R.drawable.home_six_19, R.drawable.home_six_20, R.drawable.home_six_21, 29 | R.drawable.home_six_22, R.drawable.home_six_23, R.drawable.home_six_24, 30 | R.drawable.home_six_25, R.drawable.home_six_26, R.drawable.home_six_27, 31 | R.drawable.home_six_28, R.drawable.home_six_29, R.drawable.home_six_30, 32 | }; 33 | public static final String[] LABELS = { 34 | "推荐歌曲", "独家放送", "最新音乐", "推荐MV", "主播电台" 35 | }; 36 | public static final int[] LABELS_INDICATOR = { 37 | R.drawable.ic_indicator_0, R.drawable.ic_indicator_1, R.drawable.ic_indicator_2, 38 | R.drawable.ic_indicator_3, R.drawable.ic_indicator_4 39 | }; 40 | public static final String[] TITLES = { 41 | "海明威", "小说", "中国文学", 42 | "村上春树", "王小波", "余华", 43 | "鲁迅", "米兰·昆德拉", "外国文学", 44 | "经典", "童话", "儿童文学", 45 | "名著", "缘分", "杜拉斯", 46 | "文学", "散文", "诗歌", 47 | "张爱玲", "钱钟书", "诗词", 48 | "港台", "随笔", "日本文学", 49 | "杂文", "古典文学", "村上春树", 50 | "米兰·昆德拉", "童话", "张爱玲"}; 51 | public static final String[] SUBTITLES = { 52 | "美国作家和记者,被认为是20世纪最著名的小说家之一。出生于美国伊利诺伊州芝加哥市郊区的奥克帕克,晚年在爱达荷州凯彻姆的家中自杀身亡。海明威一生中的感情错综复杂,先后结过四次婚,是美国“迷惘的一代”(Lost Generation)作家中的代表人物,作品中对人生、世界、社会都表现出了迷茫和彷徨。", 53 | "以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。", 54 | "中国文学分为古典文学、现代文学与当代文学。古典文学以唐宋诗词及四大名著为代表,现代文学以鲁迅小说为代表,当代文学则以具有独立思想的中国自由文学为标志。", 55 | "村上春树(1949年1月12日—),日本现代小说家,生于京都伏见区。毕业于早稻田大学第一文学部演剧科。", 56 | "王小波(1952-1997),中国当代学者、作家。代表作品有《黄金时代》、《白银时代》、《青铜时代》、《黑铁时代》等。", 57 | "余华,1960年4月3日生于浙江杭州,当代作家。中国作家协会第九届全国委员会委员。", 58 | "鲁迅(1881年9月25日-1936年10月19日),原名周樟寿,后改名周树人,字豫山,后改豫才,“鲁迅”是他1918年发表《狂人日记》时所用的笔名,也是他影响最为广泛的笔名,浙江绍兴人。著名文学家、思想家,五四新文化运动的重要参与者,中国现代文学的奠基人。", 59 | "米兰·昆德拉(Milan Kundera),小说家,出生于捷克斯洛伐克布尔诺,自1975年起,在法国定居。长篇小说《玩笑》、《生活在别处》、《告别圆舞曲》、《笑忘录》、《不能承受的生命之轻》和《不朽》,以及短篇小说集《好笑的爱》是以作者母语捷克文写成。而他最新出版的长篇小说《慢》、《身份》和《无知》及随笔集《小说的艺术》和《被背叛的遗嘱》是以法文写成。《雅克和他的主人》系作者戏剧代表作。", 60 | "外国文学是指除中国文学以外的世界各国文学。世界文学源远流长,绚丽多姿。早在几千年以前,在人类文明的发祥地就已经孕育出了人类最初的文学瑰宝。在而后的岁月里,东西方许多民族都出现过杰出的文学大师和众多的名家名著。人们热爱和珍视这些作家及其作品,是因为优秀的文学作品体现了人类对客观世界的认识,显示了人类成长的精神轨迹,并给世世代代的人们以审美的愉悦。", 61 | "经典读音jīngdiǎn英文名classics:指具有典范性、权威性的;经久不衰的万世之作;经过历史选择出来的“最有价值经典的”;最能表现本行业的精髓的;最具代表性的;最完美的作品。", 62 | "《童话》是光良演唱的一首歌曲,由光良作词、作曲,收录在光良2005年1月21日发行的同名专辑《童话》中[1-2] 。《童话》是光良的代表作品之一。", 63 | "《儿童文学》是由共青团中央和中国作家协会于1963年共同创办的杂志,被誉为“中国儿童文学的一面旗帜”。目前为月刊,月发行量110多万份。", 64 | "名著就是指具有较高艺术价值和知名度,且包含永恒主题和经典的人物形象,能够经过时间考验经久不衰,被广泛认识以及流传的文字作品。能给人们以警世和深远影响的著作,以及对世人生存环境的感悟。", 65 | "缘分,它是出自佛教的一个宗教概念,儒家与道家并不讲缘分,也不讲你与我有缘之说。", 66 | "玛格丽特·杜拉斯1914年出生于法属印度支那。十八岁时定居巴黎。自1942年开始发表小说,1950年的《抵挡太平洋的堤坝》使杜拉斯成名。这段时期的作品富有自传色彩。自1953年的《塔基尼亚的小马群》起,杜拉斯探索新的叙事语言,逐渐抹去小说情节,更强调主观感受和心理变化。1955—1965年是她创作上的高峰期,代表作有小说《如歌的中板》、《副领事》,以及剧本《广岛之恋》等。1984年发表《情人》,获当年龚古尔文学奖。", 67 | "文学是以语言文字为工具,形象化地反映客观现实、表现作家心灵世界的艺术,包括诗歌、散文、小说、剧本、寓言童话等,是文化的重要表现形式,以不同的形式即体裁,表现内心情感,再现一定时期和一定地域的社会生活。作为学科门类理解的文学,包括中国语言文学、外国语言文学及新闻传播学。", 68 | "散文是一种作者写自己经历见闻中的真情实感、灵活的文学体裁。", 69 | "用高度凝练的语言,形象表达作者丰富情感,集中反映社会生活并具有一定节奏和韵律的文学体裁。", 70 | "张爱玲,中国现代作家,原籍河北省唐山市,原名张煐。1920年9月30日出生在上海公共租界西区一幢没落贵族府邸。", 71 | "钱钟书(1910年-1998年),江苏无锡人,原名仰先,字哲良,后改名钟书,字默存,号槐聚,曾用笔名中书君,中国现代作家、文学研究家。", 72 | "诗词,是指以古体诗、近体诗和格律词为代表的中国古代传统诗歌。亦是汉字文化圈的特色之一。通常认为,诗较为适合“言志”,而词则更为适合“抒情”。", 73 | "香港电台(Radio Television Hong Kong,简称:RTHK),中文简称“港台”。现为商务及经济发展局辖下的部门,是香港广播史上首家广播机构,同时也是香港唯一的公共广播机构,亦是最具公信力的传媒机构之一。", 74 | "随笔,顾名思义:随笔一记,是散文的一个分支,是议论文的一个变体,兼有议论和抒情两种特性,通常篇幅短小,形式多样,写作者惯常用各种修辞手法曲折传达自己的见解和情感,语言灵动,婉而多讽,是言禁未开之社会较为流行的一种文体。随笔作为一种文学样式,是由法国散文家蒙田所创的。", 75 | "日本文学指的是以日本语写作的文学作品,横跨的时间大约有两千年。早期的文学作品受到中国文学一些的影响,但在后来日本也渐渐形成自有的文学风格和特色。19世纪日本重启港口与西方国家贸易及展开外交关系之后,西方文学也开始影响日本的作家,直到今天仍然得见其影响力。", 76 | "杂文是一种直接、迅速反映社会事变或动向的文艺性论文。特点是“杂而有文”,短小、锋利、隽永,富于文艺工作者色彩和诗的语言,具有独特的艺术感染力。在剧烈的社会斗争中,杂文是战斗的利器,比如鲁迅先生的杂文就如同“匕首”“投枪”直刺一切黑暗的心脏。在和平建设年代,它也能起到赞扬真善美,鞭挞假恶丑的针砭时弊的喉舌作用。比如《庄周买水》、《剃光头发微》等文章就是如此。", 77 | "古典文学泛指各民族的古代文学作品,是文学的一部分,是现代文学的发展基础,它是承上启下的,是文学发展史上不可缺少的部分。它是中国文学最根本的东西。 现在所谓的古典文学,也专指优秀的、有一定价值的古代文学作品。“古典”在拉丁文中是“第一流的、典范的”意思。欧洲文艺复兴时期,文艺理论家以古希腊、罗马的优秀作品为典范,称为古典文学。在中国,把从远古流传下来的原始歌谣和神话传说,直到五四以前大量的有一定价值的文学作品,叫古典文学。", 78 | "村上春树(1949年1月12日—),日本现代小说家,生于京都伏见区。毕业于早稻田大学第一文学部演剧科。", 79 | "米兰·昆德拉(Milan Kundera),小说家,出生于捷克斯洛伐克布尔诺,自1975年起,在法国定居。长篇小说《玩笑》、《生活在别处》、《告别圆舞曲》、《笑忘录》、《不能承受的生命之轻》和《不朽》,以及短篇小说集《好笑的爱》是以作者母语捷克文写成。而他最新出版的长篇小说《慢》、《身份》和《无知》及随笔集《小说的艺术》和《被背叛的遗嘱》是以法文写成。《雅克和他的主人》系作者戏剧代表作。", 80 | "《童话》是光良演唱的一首歌曲,由光良作词、作曲,收录在光良2005年1月21日发行的同名专辑《童话》中[1-2] 。《童话》是光良的代表作品之一。", 81 | "用高度凝练的语言,形象表达作者丰富情感,集中反映社会生活并具有一定节奏和韵律的文学体裁。" 82 | }; 83 | } 84 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo; 2 | 3 | import android.content.Intent; 4 | import android.databinding.DataBindingUtil; 5 | import android.os.Bundle; 6 | import android.support.annotation.Nullable; 7 | import android.support.design.widget.NavigationView; 8 | import android.support.v4.app.Fragment; 9 | import android.support.v4.view.GravityCompat; 10 | import android.support.v4.view.ViewPager; 11 | import android.support.v7.widget.Toolbar; 12 | import android.view.Menu; 13 | import android.view.MenuItem; 14 | import android.view.View; 15 | 16 | import com.ximsfei.skindemo.databinding.ActivityMainBinding; 17 | import com.ximsfei.skindemo.databinding.MainHeaderLayoutBinding; 18 | import com.ximsfei.skindemo.ui.AboutSkinLibActivity; 19 | import com.ximsfei.skindemo.ui.SkinLibActivity; 20 | import com.ximsfei.skindemo.ui.adapter.TabFragmentPagerAdapter; 21 | import com.ximsfei.skindemo.ui.DiscoverFragment; 22 | import com.ximsfei.skindemo.ui.FriendsFragment; 23 | import com.ximsfei.skindemo.ui.MusicFragment; 24 | import com.ximsfei.skindemo.ui.base.BaseActivity; 25 | import com.ximsfei.skindemo.utils.SPUtils; 26 | 27 | import java.util.ArrayList; 28 | import java.util.List; 29 | 30 | import skin.support.SkinCompatManager; 31 | 32 | import static com.ximsfei.skindemo.DataManager.NIGHT_SKIN; 33 | import static com.ximsfei.skindemo.DataManager.SKIN_LIBS; 34 | import static com.ximsfei.skindemo.DataManager.SKIN_NAMES; 35 | 36 | /** 37 | * Created by ximsfei on 17-1-7. 38 | */ 39 | 40 | public class MainActivity extends BaseActivity { 41 | private final static String TAG = MainActivity.class.getSimpleName(); 42 | private static final int SELECT_SKIN_REQUEST_CODE = 100; 43 | 44 | private ViewPagerListener mViewPagerListener = new ViewPagerListener(); 45 | private int mCurrentFragment = TabState.DEFAULT; 46 | 47 | private MainHeaderLayoutBinding mMainHeaderBinding; 48 | 49 | @Override 50 | protected int getLayoutResId() { 51 | return R.layout.activity_main; 52 | } 53 | 54 | @Override 55 | protected void onCreate(@Nullable Bundle savedInstanceState) { 56 | super.onCreate(savedInstanceState); 57 | mDataBinding.setListener(this); 58 | initToolbar(mDataBinding.toolBar); 59 | initNavigationView(mDataBinding.navigationView); 60 | configFragments(); 61 | } 62 | 63 | @Override 64 | protected void initToolbar(Toolbar toolBar) { 65 | setSupportActionBar(toolBar); 66 | getSupportActionBar().setDisplayShowTitleEnabled(false); 67 | toolBar.setNavigationIcon(R.drawable.ic_menu); 68 | toolBar.setNavigationOnClickListener(new View.OnClickListener() { 69 | @Override 70 | public void onClick(View v) { 71 | mDataBinding.drawerLayout.openDrawer(GravityCompat.START); 72 | } 73 | }); 74 | } 75 | 76 | private void initNavigationView(NavigationView navigationView) { 77 | View headerView = getLayoutInflater().inflate(R.layout.main_header_layout, null, false); 78 | navigationView.addHeaderView(headerView); 79 | mMainHeaderBinding = DataBindingUtil.bind(headerView); 80 | mMainHeaderBinding.setListener(this); 81 | initSkinName(); 82 | } 83 | 84 | public void goAboutSkinLibActivity(View view) { 85 | Intent intent = new Intent(this, AboutSkinLibActivity.class); 86 | startActivity(intent); 87 | } 88 | 89 | public void goSkinLibActivity(View view) { 90 | mDataBinding.drawerLayout.closeDrawer(GravityCompat.START); 91 | Intent intent = new Intent(this, SkinLibActivity.class); 92 | startActivityForResult(intent, SELECT_SKIN_REQUEST_CODE); 93 | } 94 | 95 | public boolean getNightMode() { 96 | return SPUtils.getInstance().getNightMode(); 97 | } 98 | 99 | public void onNightModeClick(View view) { 100 | if (!SPUtils.getInstance().getNightMode()) { 101 | SPUtils.getInstance().setCurSkin(SkinCompatManager.getInstance().getCurSkinName()).commitEditor(); 102 | SkinCompatManager.getInstance().loadSkin(NIGHT_SKIN); 103 | } else { 104 | SkinCompatManager.getInstance().loadSkin(SPUtils.getInstance().getCurSkin()); 105 | } 106 | SPUtils.getInstance().setNightMode(!SPUtils.getInstance().getNightMode()).commitEditor(); 107 | mMainHeaderBinding.dayNightSwitch.setChecked(SPUtils.getInstance().getNightMode()); 108 | } 109 | 110 | private void configFragments() { 111 | List list = new ArrayList<>(); 112 | list.add(new DiscoverFragment()); 113 | list.add(new MusicFragment()); 114 | list.add(new FriendsFragment()); 115 | mDataBinding.viewPager.setAdapter(new TabFragmentPagerAdapter(getSupportFragmentManager(), list)); 116 | mDataBinding.viewPager.addOnPageChangeListener(mViewPagerListener); 117 | setPageSelected(mCurrentFragment); 118 | } 119 | 120 | @Override 121 | public boolean onCreateOptionsMenu(Menu menu) { 122 | getMenuInflater().inflate(R.menu.menu_main_options, menu); 123 | return super.onCreateOptionsMenu(menu); 124 | } 125 | 126 | @Override 127 | public boolean onOptionsItemSelected(MenuItem item) { 128 | switch (item.getItemId()) { 129 | case R.id.menu_search: 130 | break; 131 | } 132 | return super.onOptionsItemSelected(item); 133 | } 134 | 135 | public void goDiscoverTab(View view) { 136 | setPageSelected(TabState.DEFAULT); 137 | } 138 | 139 | public void goMusicTab(View view) { 140 | setPageSelected(TabState.MUSIC); 141 | } 142 | 143 | public void goFriendsTab(View view) { 144 | setPageSelected(TabState.FRIENDS); 145 | } 146 | 147 | public void setPageSelected(int position) { 148 | mCurrentFragment = position; 149 | if (position != mDataBinding.viewPager.getCurrentItem()) { 150 | mDataBinding.viewPager.setCurrentItem(position); 151 | } 152 | mDataBinding.discover.setSelected(false); 153 | mDataBinding.music.setSelected(false); 154 | mDataBinding.friends.setSelected(false); 155 | switch (position) { 156 | case TabState.DEFAULT: 157 | mDataBinding.discover.setSelected(true); 158 | break; 159 | case TabState.MUSIC: 160 | mDataBinding.music.setSelected(true); 161 | break; 162 | case TabState.FRIENDS: 163 | mDataBinding.friends.setSelected(true); 164 | break; 165 | } 166 | } 167 | 168 | public interface TabState { 169 | int DEFAULT = 0; 170 | int MUSIC = 1; 171 | int FRIENDS = 2; 172 | } 173 | 174 | public class ViewPagerListener extends ViewPager.SimpleOnPageChangeListener { 175 | 176 | @Override 177 | public void onPageSelected(int position) { 178 | // TODO Auto-generated method stub 179 | setPageSelected(position); 180 | } 181 | } 182 | 183 | @Override 184 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { 185 | super.onActivityResult(requestCode, resultCode, data); 186 | if (SELECT_SKIN_REQUEST_CODE == requestCode) { 187 | initSkinName(); 188 | } 189 | } 190 | 191 | private void initSkinName() { 192 | String curSkin = SkinCompatManager.getInstance().getCurSkinName(); 193 | String curSkinName = SKIN_NAMES[0]; 194 | for (int i = 0; i < SKIN_LIBS.length; i++) { 195 | if (SKIN_LIBS[i].equals(curSkin)) { 196 | curSkinName = SKIN_NAMES[i]; 197 | break; 198 | } 199 | } 200 | mMainHeaderBinding.curSkinName.setText(curSkinName); 201 | mMainHeaderBinding.dayNightSwitch.setChecked(SPUtils.getInstance().getNightMode()); 202 | } 203 | 204 | @Override 205 | public void onBackPressed() { 206 | if (mDataBinding.drawerLayout.isDrawerOpen(GravityCompat.START)) { 207 | mDataBinding.drawerLayout.closeDrawer(GravityCompat.START); 208 | return; 209 | } 210 | super.onBackPressed(); 211 | } 212 | } 213 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/SplashActivity.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo; 2 | 3 | import android.content.Intent; 4 | import android.os.Bundle; 5 | import android.view.View; 6 | 7 | import com.ximsfei.skindemo.ui.base.BaseActivity; 8 | 9 | public class SplashActivity extends BaseActivity { 10 | 11 | @Override 12 | protected int getLayoutResId() { 13 | return R.layout.activity_splash; 14 | } 15 | 16 | @Override 17 | protected void onCreate(Bundle savedInstanceState) { 18 | super.onCreate(savedInstanceState); 19 | findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { 20 | @Override 21 | public void onClick(View v) { 22 | startActivity(new Intent(SplashActivity.this, MainActivity.class)); 23 | overridePendingTransition(R.anim.screen_zoom_in, R.anim.screen_zoom_out); 24 | // finish(); 25 | } 26 | }); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/bean/ImageItem.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.bean; 2 | 3 | /** 4 | * Created by pengfengwang on 2017/1/15. 5 | */ 6 | 7 | public class ImageItem { 8 | public ImageItem() { 9 | } 10 | 11 | public ImageItem(String title, String subtitle, int image) { 12 | this.title = title; 13 | this.subtitle = subtitle; 14 | this.image = image; 15 | } 16 | 17 | public String title; 18 | public String subtitle; 19 | public int image; 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/bean/RecommendItem.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.bean; 2 | 3 | /** 4 | * Created by pengfengwang on 2017/1/15. 5 | */ 6 | 7 | public class RecommendItem { 8 | public String title; 9 | public int indicator; 10 | 11 | public ImageItem item0; 12 | public ImageItem item1; 13 | public ImageItem item2; 14 | public ImageItem item3; 15 | public ImageItem item4; 16 | public ImageItem item5; 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/AboutSkinLibActivity.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | 6 | import com.ximsfei.skindemo.R; 7 | import com.ximsfei.skindemo.databinding.ActivityAboutSkinLibBinding; 8 | import com.ximsfei.skindemo.ui.base.BaseActivity; 9 | 10 | /** 11 | * Created by ximsfei on 2017/1/17. 12 | */ 13 | 14 | public class AboutSkinLibActivity extends BaseActivity { 15 | @Override 16 | protected int getLayoutResId() { 17 | return R.layout.activity_about_skin_lib; 18 | } 19 | 20 | @Override 21 | protected void onCreate(@Nullable Bundle savedInstanceState) { 22 | super.onCreate(savedInstanceState); 23 | initToolbar(mDataBinding.toolBar); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/DiscoverFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | 7 | import com.ximsfei.skindemo.R; 8 | import com.ximsfei.skindemo.databinding.FragmentDiscoverBinding; 9 | import com.ximsfei.skindemo.ui.adapter.TabFragmentPagerAdapter; 10 | import com.ximsfei.skindemo.ui.base.BaseFragment; 11 | import com.ximsfei.skindemo.ui.discover.RadioFragment; 12 | import com.ximsfei.skindemo.ui.discover.RankingFragment; 13 | import com.ximsfei.skindemo.ui.discover.RecommendFragment; 14 | import com.ximsfei.skindemo.ui.discover.SongMenuFragment; 15 | 16 | import java.util.ArrayList; 17 | import java.util.List; 18 | 19 | /** 20 | * Created by ximsfei on 17-1-7. 21 | */ 22 | 23 | public class DiscoverFragment extends BaseFragment { 24 | private TabFragmentPagerAdapter mTabFragmentPagerAdapter; 25 | 26 | @Override 27 | protected int getLayoutId() { 28 | return R.layout.fragment_discover; 29 | } 30 | 31 | @Override 32 | protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { 33 | super.onCreateVew(inflater, savedInstanceState); 34 | configFragments(); 35 | } 36 | 37 | @Override 38 | protected void loadData() { 39 | 40 | } 41 | 42 | private void configFragments() { 43 | List list = new ArrayList<>(); 44 | list.add(new RecommendFragment()); 45 | list.add(new SongMenuFragment()); 46 | list.add(new RadioFragment()); 47 | list.add(new RankingFragment()); 48 | List listTitle = new ArrayList<>(); 49 | listTitle.add("个性推荐"); 50 | listTitle.add("歌单"); 51 | listTitle.add("主播电台"); 52 | listTitle.add("排行榜"); 53 | mTabFragmentPagerAdapter = new TabFragmentPagerAdapter(getChildFragmentManager(), list, listTitle); 54 | mDataBinding.viewPager.setAdapter(mTabFragmentPagerAdapter); 55 | mDataBinding.tabLayout.setupWithViewPager(mDataBinding.viewPager); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/FriendsFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | 7 | import com.ximsfei.skindemo.R; 8 | import com.ximsfei.skindemo.databinding.FragmentFriendsBinding; 9 | import com.ximsfei.skindemo.ui.adapter.TabFragmentPagerAdapter; 10 | import com.ximsfei.skindemo.ui.base.BaseFragment; 11 | import com.ximsfei.skindemo.ui.friends.ContactsFragment; 12 | import com.ximsfei.skindemo.ui.friends.FeedsFragment; 13 | import com.ximsfei.skindemo.ui.friends.NearbyFragment; 14 | 15 | import java.util.ArrayList; 16 | import java.util.List; 17 | 18 | /** 19 | * Created by ximsfei on 17-1-7. 20 | */ 21 | 22 | public class FriendsFragment extends BaseFragment { 23 | private TabFragmentPagerAdapter mTabFragmentPagerAdapter; 24 | 25 | @Override 26 | protected int getLayoutId() { 27 | return R.layout.fragment_friends; 28 | } 29 | 30 | @Override 31 | protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { 32 | super.onCreateVew(inflater, savedInstanceState); 33 | configFragments(); 34 | } 35 | 36 | @Override 37 | protected void loadData() { 38 | 39 | } 40 | 41 | private void configFragments() { 42 | List list = new ArrayList<>(); 43 | list.add(new FeedsFragment()); 44 | list.add(new NearbyFragment()); 45 | list.add(new ContactsFragment()); 46 | List listTitle = new ArrayList<>(); 47 | listTitle.add("动态"); 48 | listTitle.add("附近"); 49 | listTitle.add("好友"); 50 | mTabFragmentPagerAdapter = new TabFragmentPagerAdapter(getChildFragmentManager(), list, listTitle); 51 | mDataBinding.viewPager.setAdapter(mTabFragmentPagerAdapter); 52 | mDataBinding.tabLayout.setupWithViewPager(mDataBinding.viewPager); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/MusicFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui; 2 | 3 | import com.ximsfei.skindemo.R; 4 | import com.ximsfei.skindemo.databinding.FragmentMusicBinding; 5 | import com.ximsfei.skindemo.ui.base.BaseFragment; 6 | 7 | /** 8 | * Created by ximsfei on 17-1-7. 9 | */ 10 | 11 | public class MusicFragment extends BaseFragment { 12 | @Override 13 | protected int getLayoutId() { 14 | return R.layout.fragment_music; 15 | } 16 | 17 | @Override 18 | protected void loadData() { 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/SkinLibActivity.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui; 2 | 3 | import android.databinding.DataBindingUtil; 4 | import android.os.Bundle; 5 | import android.support.annotation.Nullable; 6 | import android.support.v7.widget.DefaultItemAnimator; 7 | import android.support.v7.widget.GridLayoutManager; 8 | import android.view.Menu; 9 | import android.view.MenuItem; 10 | import android.view.View; 11 | 12 | import com.ximsfei.skindemo.R; 13 | import com.ximsfei.skindemo.databinding.ActivitySkinLibBinding; 14 | import com.ximsfei.skindemo.databinding.HeaderSkinLibBinding; 15 | import com.ximsfei.skindemo.ui.adapter.SkinLibAdapter; 16 | import com.ximsfei.skindemo.ui.base.BaseActivity; 17 | import com.ximsfei.skindemo.utils.SPUtils; 18 | 19 | import skin.support.SkinCompatManager; 20 | 21 | import static com.ximsfei.skindemo.DataManager.SKIN_LIBS; 22 | 23 | /** 24 | * Created by ximsfei on 2017/1/16. 25 | */ 26 | 27 | public class SkinLibActivity extends BaseActivity { 28 | private HeaderSkinLibBinding mHeaderBinding; 29 | private SkinLibAdapter mAdapter; 30 | private int mCurSkin = -1; 31 | 32 | @Override 33 | protected int getLayoutResId() { 34 | return R.layout.activity_skin_lib; 35 | } 36 | 37 | @Override 38 | protected void onCreate(@Nullable Bundle savedInstanceState) { 39 | super.onCreate(savedInstanceState); 40 | initToolbar(mDataBinding.toolBar); 41 | mHeaderBinding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.header_skin_lib, null, false); 42 | initRecyclerView(); 43 | initHeaderView(); 44 | } 45 | 46 | private void initRecyclerView() { 47 | mDataBinding.recyclerView.setPullRefreshEnabled(false); 48 | mDataBinding.recyclerView.setLoadingMoreEnabled(true); 49 | mDataBinding.recyclerView.addHeaderView(mHeaderBinding.getRoot()); 50 | mDataBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 3)); 51 | mDataBinding.recyclerView.setNestedScrollingEnabled(false); 52 | mDataBinding.recyclerView.setHasFixedSize(false); 53 | mDataBinding.recyclerView.setItemAnimator(new DefaultItemAnimator()); 54 | mAdapter = new SkinLibAdapter(); 55 | mDataBinding.recyclerView.setAdapter(mAdapter); 56 | } 57 | 58 | private void initHeaderView() { 59 | mHeaderBinding.red.name.setText("官方红"); 60 | mHeaderBinding.red.preview.setAspectRatio(4 * 1.0f / 3); 61 | mHeaderBinding.red.preview.setImageResource(R.drawable.skin_red); 62 | mHeaderBinding.red.getRoot().setOnClickListener(new View.OnClickListener() { 63 | @Override 64 | public void onClick(View view) { 65 | SkinCompatManager.getInstance().restoreDefaultTheme(); 66 | SPUtils.getInstance().setNightMode(false).commitEditor(); 67 | showSkinIndicator(0); 68 | } 69 | }); 70 | mHeaderBinding.white.name.setText("官方白"); 71 | mHeaderBinding.white.preview.setAspectRatio(4 * 1.0f / 3); 72 | mHeaderBinding.white.preview.setImageResource(R.drawable.skin_white); 73 | mHeaderBinding.white.getRoot().setOnClickListener(new View.OnClickListener() { 74 | @Override 75 | public void onClick(View view) { 76 | SkinCompatManager.getInstance().loadSkin("white.skin", new SkinCompatManager.SkinLoaderListener() { 77 | @Override 78 | public void onStart() { 79 | } 80 | 81 | @Override 82 | public void onSuccess() { 83 | SPUtils.getInstance().setNightMode(false).commitEditor(); 84 | showSkinIndicator(); 85 | } 86 | 87 | @Override 88 | public void onFailed(String s) { 89 | } 90 | }); 91 | } 92 | }); 93 | // mHeaderBinding.color.getRoot().setVisibility(View.INVISIBLE); 94 | mHeaderBinding.color.name.setText("自选颜色"); 95 | mHeaderBinding.color.preview.setAspectRatio(4 * 1.0f / 3); 96 | mHeaderBinding.color.preview.setImageResource(R.drawable.skin_color); 97 | showSkinIndicator(); 98 | } 99 | 100 | private void showSkinIndicator() { 101 | String curSkinName = SkinCompatManager.getInstance().getCurSkinName(); 102 | for (int i = 0; i < SKIN_LIBS.length; i++) { 103 | if (SKIN_LIBS[i].equals(curSkinName)) { 104 | showSkinIndicator(i); 105 | } 106 | } 107 | } 108 | 109 | private void showSkinIndicator(int index) { 110 | hideSkinIndicator(mCurSkin); 111 | switch (index) { 112 | case 0: 113 | mHeaderBinding.red.description.setText("使用中"); 114 | mHeaderBinding.red.indicator.setVisibility(View.VISIBLE); 115 | mHeaderBinding.red.description.setVisibility(View.VISIBLE); 116 | mCurSkin = 0; 117 | break; 118 | case 1: 119 | mHeaderBinding.white.description.setText("使用中"); 120 | mHeaderBinding.white.indicator.setVisibility(View.VISIBLE); 121 | mHeaderBinding.white.description.setVisibility(View.VISIBLE); 122 | mCurSkin = 1; 123 | break; 124 | case 2: 125 | mHeaderBinding.color.description.setText("使用中"); 126 | mHeaderBinding.color.indicator.setVisibility(View.VISIBLE); 127 | mHeaderBinding.color.description.setVisibility(View.VISIBLE); 128 | mCurSkin = 2; 129 | break; 130 | } 131 | } 132 | 133 | private void hideSkinIndicator(int index) { 134 | mCurSkin = -1; 135 | switch (index) { 136 | case 0: 137 | mHeaderBinding.red.indicator.setVisibility(View.INVISIBLE); 138 | mHeaderBinding.red.description.setVisibility(View.INVISIBLE); 139 | break; 140 | case 1: 141 | mHeaderBinding.white.indicator.setVisibility(View.INVISIBLE); 142 | mHeaderBinding.white.description.setVisibility(View.INVISIBLE); 143 | break; 144 | case 2: 145 | mHeaderBinding.color.indicator.setVisibility(View.INVISIBLE); 146 | mHeaderBinding.color.description.setVisibility(View.INVISIBLE); 147 | break; 148 | } 149 | } 150 | 151 | @Override 152 | public boolean onCreateOptionsMenu(Menu menu) { 153 | getMenuInflater().inflate(R.menu.menu_skin_lib_options, menu); 154 | return super.onCreateOptionsMenu(menu); 155 | } 156 | 157 | @Override 158 | public boolean onOptionsItemSelected(MenuItem item) { 159 | switch (item.getItemId()) { 160 | case R.id.menu_manager: 161 | break; 162 | } 163 | return super.onOptionsItemSelected(item); 164 | } 165 | } 166 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/adapter/RecommendAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.adapter; 2 | 3 | import android.content.Context; 4 | import android.view.LayoutInflater; 5 | import android.view.ViewGroup; 6 | 7 | import com.bumptech.glide.Glide; 8 | import com.ximsfei.skindemo.R; 9 | import com.ximsfei.skindemo.bean.RecommendItem; 10 | import com.ximsfei.skindemo.databinding.RecommendItemBinding; 11 | import com.ximsfei.skindemo.ui.adapter.baseadapter.BaseRecyclerViewAdapter; 12 | import com.ximsfei.skindemo.ui.adapter.baseadapter.BaseRecyclerViewHolder; 13 | 14 | /** 15 | * Created by ximsfei on 2017/1/15. 16 | */ 17 | 18 | public class RecommendAdapter extends BaseRecyclerViewAdapter { 19 | public static final int TYPE_SONG_MENU = 1; 20 | public static final int TYPE_UNIQUE = 2; 21 | public static final int TYPE_LASTEST = 3; 22 | public static final int TYPE_MV = 4; 23 | public static final int TYPE_RADIO = 5; 24 | 25 | public RecommendAdapter(Context context) { 26 | } 27 | 28 | @Override 29 | public BaseRecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 30 | return new RecommendItemViewHolder(parent, R.layout.recommend_item); 31 | } 32 | 33 | private class RecommendItemViewHolder extends BaseRecyclerViewHolder { 34 | public RecommendItemViewHolder(ViewGroup viewGroup, int layoutId) { 35 | super(viewGroup, layoutId); 36 | } 37 | 38 | @Override 39 | public void onBindViewHolder(RecommendItem item, int position) { 40 | mBinding.title.setText(item.title); 41 | Context context = mBinding.recommend1.image.getContext(); 42 | mBinding.indicator.setImageResource(item.indicator); 43 | Glide.with(context).load(item.item0.image) 44 | .error(R.drawable.loading) 45 | .crossFade(1000) 46 | .into(mBinding.recommend1.image); 47 | Glide.with(context).load(item.item1.image) 48 | .error(R.drawable.loading) 49 | .crossFade(1000) 50 | .into(mBinding.recommend2.image); 51 | Glide.with(context).load(item.item2.image) 52 | .error(R.drawable.loading) 53 | .crossFade(1000) 54 | .into(mBinding.recommend3.image); 55 | Glide.with(context).load(item.item3.image) 56 | .error(R.drawable.loading) 57 | .crossFade(1000) 58 | .into(mBinding.recommend4.image); 59 | Glide.with(context).load(item.item4.image) 60 | .error(R.drawable.loading) 61 | .crossFade(1000) 62 | .into(mBinding.recommend5.image); 63 | Glide.with(context).load(item.item5.image) 64 | .error(R.drawable.loading) 65 | .crossFade(1000) 66 | .into(mBinding.recommend6.image); 67 | mBinding.recommend1.description.setText(item.item0.subtitle); 68 | mBinding.recommend2.description.setText(item.item1.subtitle); 69 | mBinding.recommend3.description.setText(item.item2.subtitle); 70 | mBinding.recommend4.description.setText(item.item3.subtitle); 71 | mBinding.recommend5.description.setText(item.item4.subtitle); 72 | mBinding.recommend6.description.setText(item.item5.subtitle); 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/adapter/SkinLibAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.adapter; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | import android.view.ViewGroup; 5 | 6 | import com.ximsfei.skindemo.ui.adapter.baseadapter.BaseRecyclerViewAdapter; 7 | 8 | /** 9 | * Created by pengfengwang on 2017/1/16. 10 | */ 11 | public class SkinLibAdapter extends BaseRecyclerViewAdapter { 12 | @Override 13 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 14 | return null; 15 | } 16 | 17 | @Override 18 | public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/adapter/SongMenuAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.adapter; 2 | 3 | import android.content.Context; 4 | import android.support.v4.app.FragmentActivity; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.ViewGroup; 7 | 8 | import com.ximsfei.skindemo.bean.RecommendItem; 9 | import com.ximsfei.skindemo.ui.adapter.baseadapter.BaseRecyclerViewAdapter; 10 | 11 | /** 12 | * Created by ximsfei on 17-1-15. 13 | */ 14 | public class SongMenuAdapter extends BaseRecyclerViewAdapter { 15 | public SongMenuAdapter(Context context) { 16 | } 17 | 18 | @Override 19 | public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/adapter/TabFragmentPagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.adapter; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentPagerAdapter; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by ximsfei on 17-1-7. 11 | */ 12 | 13 | public class TabFragmentPagerAdapter extends FragmentPagerAdapter { 14 | 15 | private List mFragments; 16 | private List mTitles; 17 | 18 | public TabFragmentPagerAdapter(FragmentManager fragmentManager, List fragments) { 19 | super(fragmentManager); 20 | mFragments = fragments; 21 | } 22 | 23 | public TabFragmentPagerAdapter(FragmentManager fragmentManager, List fragments, List titles) { 24 | super(fragmentManager); 25 | mFragments = fragments; 26 | mTitles = titles; 27 | } 28 | 29 | @Override 30 | public Fragment getItem(int position) { 31 | return mFragments.get(position); 32 | } 33 | 34 | @Override 35 | public int getCount() { 36 | return mFragments.size(); 37 | } 38 | 39 | @Override 40 | public CharSequence getPageTitle(int position) { 41 | return mTitles != null ? mTitles.get(position) : ""; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/adapter/baseadapter/BaseRecyclerViewAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.adapter.baseadapter; 2 | 3 | import android.support.v7.widget.RecyclerView; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | /** 9 | * Created by ximsfei on 2017/1/15. 10 | */ 11 | public abstract class BaseRecyclerViewAdapter extends RecyclerView.Adapter { 12 | 13 | protected List data = new ArrayList<>(); 14 | protected OnItemClickListener listener; 15 | 16 | @Override 17 | public void onBindViewHolder(BaseRecyclerViewHolder holder, final int position) { 18 | holder.onBaseBindViewHolder(data.get(position), position); 19 | } 20 | 21 | @Override 22 | public int getItemCount() { 23 | return data.size(); 24 | } 25 | 26 | public void addAll(List data) { 27 | this.data.addAll(data); 28 | } 29 | 30 | public void add(T object) { 31 | data.add(object); 32 | } 33 | 34 | public void clear() { 35 | data.clear(); 36 | } 37 | 38 | public void remove(T object) { 39 | data.remove(object); 40 | } 41 | 42 | public void remove(int position) { 43 | data.remove(position); 44 | } 45 | 46 | public void removeAll(List data) { 47 | this.data.retainAll(data); 48 | } 49 | 50 | public void setOnItemClickListener(OnItemClickListener listener) { 51 | this.listener = listener; 52 | } 53 | 54 | public List getData() { 55 | return data; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/adapter/baseadapter/BaseRecyclerViewHolder.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.adapter.baseadapter; 2 | 3 | import android.databinding.DataBindingUtil; 4 | import android.databinding.ViewDataBinding; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.ViewGroup; 8 | 9 | /** 10 | * Created by ximsfei on 2017/1/15. 11 | */ 12 | public abstract class BaseRecyclerViewHolder extends RecyclerView.ViewHolder { 13 | 14 | public D mBinding; 15 | 16 | public BaseRecyclerViewHolder(ViewGroup viewGroup, int layoutId) { 17 | super(DataBindingUtil.inflate(LayoutInflater.from(viewGroup.getContext()), layoutId, viewGroup, false).getRoot()); 18 | mBinding = DataBindingUtil.getBinding(this.itemView); 19 | } 20 | 21 | /** 22 | * @param bean the data of bind 23 | * @param position the item position of recyclerView 24 | */ 25 | public abstract void onBindViewHolder(T bean, final int position); 26 | 27 | /** 28 | * 当数据改变时,binding会在下一帧去改变数据,如果我们需要立即改变,就去调用executePendingBindings方法。 29 | */ 30 | void onBaseBindViewHolder(T object, final int position) { 31 | onBindViewHolder(object, position); 32 | mBinding.executePendingBindings(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/adapter/baseadapter/OnItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.adapter.baseadapter; 2 | 3 | /** 4 | * Created by ximsfei on 2017/1/15. 5 | */ 6 | public interface OnItemClickListener { 7 | public void onClick(T t, int position); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/base/BaseActivity.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.base; 2 | 3 | import android.databinding.DataBindingUtil; 4 | import android.databinding.ViewDataBinding; 5 | import android.os.Bundle; 6 | import android.support.annotation.LayoutRes; 7 | import android.support.annotation.Nullable; 8 | import android.support.v7.app.ActionBar; 9 | import android.support.v7.widget.Toolbar; 10 | import android.view.View; 11 | import android.view.WindowManager; 12 | 13 | import com.ximsfei.skindemo.R; 14 | 15 | import skin.support.app.SkinCompatActivity; 16 | 17 | /** 18 | * Created by ximsfei on 17-1-7. 19 | */ 20 | 21 | public abstract class BaseActivity extends SkinCompatActivity { 22 | protected VDB mDataBinding; 23 | // private ActivityBaseBinding mBaseBinding; 24 | 25 | // @Override 26 | // public void setContentView(@LayoutRes int layoutResID) { 27 | // mBaseBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_base, null, false); 28 | // setContentView(mBaseBinding.getRoot()); 29 | // mDataBinding = DataBindingUtil.inflate(getLayoutInflater(), layoutResID, null, false); 30 | // mBaseBinding.container.addView(mDataBinding.getRoot()); 31 | // initToolbar(mBaseBinding.toolBar); 32 | // } 33 | 34 | @LayoutRes 35 | protected abstract int getLayoutResId(); 36 | 37 | @Override 38 | protected void onCreate(@Nullable Bundle savedInstanceState) { 39 | getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 40 | super.onCreate(savedInstanceState); 41 | mDataBinding = DataBindingUtil.setContentView(this, getLayoutResId()); 42 | } 43 | 44 | @Override 45 | protected void onResume() { 46 | super.onResume(); 47 | } 48 | 49 | protected void initToolbar(Toolbar toolbar) { 50 | setSupportActionBar(toolbar); 51 | ActionBar actionBar = getSupportActionBar(); 52 | if (actionBar != null) { 53 | actionBar.setDisplayShowTitleEnabled(false); 54 | } 55 | toolbar.setNavigationIcon(R.drawable.ic_back); 56 | toolbar.setNavigationOnClickListener(new View.OnClickListener() { 57 | @Override 58 | public void onClick(View v) { 59 | onBackPressed(); 60 | } 61 | }); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/base/BaseFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.base; 2 | 3 | import android.databinding.DataBindingUtil; 4 | import android.databinding.ViewDataBinding; 5 | import android.os.Bundle; 6 | import android.support.annotation.LayoutRes; 7 | import android.support.annotation.Nullable; 8 | import android.support.v4.app.Fragment; 9 | import android.view.LayoutInflater; 10 | import android.view.View; 11 | import android.view.ViewGroup; 12 | 13 | /** 14 | * Created by ximsfei on 17-1-7. 15 | */ 16 | 17 | public abstract class BaseFragment extends Fragment { 18 | protected VDB mDataBinding; 19 | 20 | @LayoutRes 21 | protected abstract int getLayoutId(); 22 | 23 | @Override 24 | public void onActivityCreated(@Nullable Bundle savedInstanceState) { 25 | super.onActivityCreated(savedInstanceState); 26 | loadData(); 27 | } 28 | 29 | @Nullable 30 | @Override 31 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 32 | View view = inflater.inflate(getLayoutId(), null); 33 | mDataBinding = DataBindingUtil.bind(view); 34 | onCreateVew(inflater, savedInstanceState); 35 | return view; 36 | } 37 | 38 | protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { 39 | 40 | } 41 | 42 | protected abstract void loadData(); 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/discover/RadioFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.discover; 2 | 3 | import com.ximsfei.skindemo.R; 4 | import com.ximsfei.skindemo.databinding.FragmentRadioBinding; 5 | import com.ximsfei.skindemo.ui.base.BaseFragment; 6 | 7 | /** 8 | * Created by ximsfei on 17-1-8. 9 | */ 10 | 11 | public class RadioFragment extends BaseFragment { 12 | @Override 13 | protected int getLayoutId() { 14 | return R.layout.fragment_radio; 15 | } 16 | 17 | @Override 18 | protected void loadData() { 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/discover/RankingFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.discover; 2 | 3 | import com.ximsfei.skindemo.R; 4 | import com.ximsfei.skindemo.databinding.FragmentRankingBinding; 5 | import com.ximsfei.skindemo.ui.base.BaseFragment; 6 | 7 | /** 8 | * Created by ximsfei on 17-1-8. 9 | */ 10 | 11 | public class RankingFragment extends BaseFragment { 12 | @Override 13 | protected int getLayoutId() { 14 | return R.layout.fragment_ranking; 15 | } 16 | 17 | @Override 18 | protected void loadData() { 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/discover/RecommendFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.discover; 2 | 3 | import android.content.Context; 4 | import android.databinding.DataBindingUtil; 5 | import android.os.Bundle; 6 | import android.support.v7.widget.DefaultItemAnimator; 7 | import android.support.v7.widget.LinearLayoutManager; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.widget.ImageView; 11 | 12 | import com.bumptech.glide.Glide; 13 | import com.ximsfei.skindemo.R; 14 | import com.ximsfei.skindemo.bean.ImageItem; 15 | import com.ximsfei.skindemo.bean.RecommendItem; 16 | import com.ximsfei.skindemo.databinding.FooterRecommendItemBinding; 17 | import com.ximsfei.skindemo.databinding.FragmentRecommendBinding; 18 | import com.ximsfei.skindemo.databinding.HeaderRecommendItemBinding; 19 | import com.ximsfei.skindemo.ui.adapter.RecommendAdapter; 20 | import com.ximsfei.skindemo.ui.base.BaseFragment; 21 | import com.ximsfei.skindemo.utils.TimeUtil; 22 | import com.youth.banner.loader.ImageLoader; 23 | 24 | import java.util.ArrayList; 25 | import java.util.List; 26 | 27 | import static com.ximsfei.skindemo.DataManager.BANNER_IMAGES; 28 | import static com.ximsfei.skindemo.DataManager.IMAGES; 29 | import static com.ximsfei.skindemo.DataManager.LABELS; 30 | import static com.ximsfei.skindemo.DataManager.LABELS_INDICATOR; 31 | import static com.ximsfei.skindemo.DataManager.SUBTITLES; 32 | import static com.ximsfei.skindemo.DataManager.TITLES; 33 | 34 | /** 35 | * Created by ximsfei on 17-1-8. 36 | */ 37 | 38 | public class RecommendFragment extends BaseFragment { 39 | private ArrayList mBannerImages = new ArrayList<>(); 40 | private HeaderRecommendItemBinding mHeaderBinding; 41 | private FooterRecommendItemBinding mFooterBinding; 42 | private RecommendAdapter mAdapter; 43 | 44 | @Override 45 | protected int getLayoutId() { 46 | return R.layout.fragment_recommend; 47 | } 48 | 49 | @Override 50 | protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { 51 | super.onCreateVew(inflater, savedInstanceState); 52 | mHeaderBinding = DataBindingUtil.inflate(LayoutInflater.from(getContext()), R.layout.header_recommend_item, null, false); 53 | initRecyclerView(); 54 | } 55 | 56 | private void initRecyclerView() { 57 | mDataBinding.recyclerView.setPullRefreshEnabled(false); 58 | mDataBinding.recyclerView.setLoadingMoreEnabled(true); 59 | mDataBinding.recyclerView.addHeaderView(mHeaderBinding.getRoot()); 60 | mFooterBinding = DataBindingUtil.inflate(LayoutInflater.from(getContext()), R.layout.footer_recommend_item, null, false); 61 | mDataBinding.recyclerView.setFootView(mFooterBinding.getRoot()); 62 | mDataBinding.recyclerView.setNoMore(true); 63 | mFooterBinding.getRoot().setVisibility(View.VISIBLE); 64 | mDataBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 65 | mDataBinding.recyclerView.setNestedScrollingEnabled(false); 66 | mDataBinding.recyclerView.setHasFixedSize(false); 67 | mDataBinding.recyclerView.setItemAnimator(new DefaultItemAnimator()); 68 | mAdapter = new RecommendAdapter(getActivity()); 69 | mDataBinding.recyclerView.setAdapter(mAdapter); 70 | } 71 | 72 | @Override 73 | protected void loadData() { 74 | loadLocalData(); 75 | loadBannerAd(); 76 | load(); 77 | } 78 | 79 | private void loadLocalData() { 80 | mHeaderBinding.dailyTxt.setText(getTodayTime().get(2).indexOf("0") == 0 81 | ? getTodayTime().get(2).replace("0", "") 82 | : getTodayTime().get(2)); 83 | } 84 | 85 | private ArrayList getTodayTime() { 86 | String data = TimeUtil.getData(); 87 | String[] split = data.split("-"); 88 | String year = split[0]; 89 | String month = split[1]; 90 | String day = split[2]; 91 | ArrayList list = new ArrayList<>(); 92 | list.add(year); 93 | list.add(month); 94 | list.add(day); 95 | return list; 96 | } 97 | 98 | private void loadBannerAd() { 99 | mBannerImages.clear(); 100 | for (int i = 0; i < BANNER_IMAGES.length; i++) { 101 | mBannerImages.add(BANNER_IMAGES[i]); 102 | } 103 | 104 | mHeaderBinding.banner 105 | .setDelayTime(5000) 106 | .setImages(mBannerImages) 107 | .setImageLoader(new ImageLoader() { 108 | @Override 109 | public void displayImage(Context context, Object path, ImageView imageView) { 110 | Glide.with(context).load(path) 111 | .crossFade(1000) 112 | .into(imageView); 113 | } 114 | }).start(); 115 | } 116 | 117 | private void load() { 118 | mAdapter.clear(); 119 | List list = new ArrayList<>(); 120 | for (int i = 0; i < LABELS.length; i++) { 121 | RecommendItem item = new RecommendItem(); 122 | item.title = LABELS[i]; 123 | item.indicator = LABELS_INDICATOR[i]; 124 | item.item0 = new ImageItem(TITLES[i * 6], SUBTITLES[i * 6], IMAGES[i * 6]); 125 | item.item1 = new ImageItem(TITLES[i * 6 + 1], SUBTITLES[i * 6 + 1], IMAGES[i * 6 + 1]); 126 | item.item2 = new ImageItem(TITLES[i * 6 + 2], SUBTITLES[i * 6 + 2], IMAGES[i * 6 + 2]); 127 | item.item3 = new ImageItem(TITLES[i * 6 + 3], SUBTITLES[i * 6 + 3], IMAGES[i * 6 + 3]); 128 | item.item4 = new ImageItem(TITLES[i * 6 + 4], SUBTITLES[i * 6 + 4], IMAGES[i * 6 + 4]); 129 | item.item5 = new ImageItem(TITLES[i * 6 + 5], SUBTITLES[i * 6 + 5], IMAGES[i * 6 + 5]); 130 | list.add(item); 131 | } 132 | mAdapter.addAll(list); 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/discover/SongMenuFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.discover; 2 | 3 | import android.databinding.DataBindingUtil; 4 | import android.os.Bundle; 5 | import android.support.v7.widget.DefaultItemAnimator; 6 | import android.support.v7.widget.LinearLayoutManager; 7 | import android.view.LayoutInflater; 8 | 9 | import com.ximsfei.skindemo.R; 10 | import com.ximsfei.skindemo.databinding.FragmentSongBinding; 11 | import com.ximsfei.skindemo.databinding.HeaderSongItemBinding; 12 | import com.ximsfei.skindemo.ui.adapter.SongMenuAdapter; 13 | import com.ximsfei.skindemo.ui.base.BaseFragment; 14 | 15 | /** 16 | * Created by ximsfei on 17-1-8. 17 | */ 18 | 19 | public class SongMenuFragment extends BaseFragment { 20 | private HeaderSongItemBinding mHeaderBinding; 21 | private SongMenuAdapter mAdapter; 22 | 23 | @Override 24 | protected int getLayoutId() { 25 | return R.layout.fragment_song; 26 | } 27 | 28 | @Override 29 | protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { 30 | super.onCreateVew(inflater, savedInstanceState); 31 | mHeaderBinding = DataBindingUtil.inflate(LayoutInflater.from(getContext()), R.layout.header_song_item, null, false); 32 | initRecyclerView(); 33 | } 34 | 35 | private void initRecyclerView() { 36 | mDataBinding.recyclerView.setPullRefreshEnabled(false); 37 | mDataBinding.recyclerView.setLoadingMoreEnabled(true); 38 | mDataBinding.recyclerView.addHeaderView(mHeaderBinding.getRoot()); 39 | mDataBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 40 | mDataBinding.recyclerView.setNestedScrollingEnabled(false); 41 | mDataBinding.recyclerView.setHasFixedSize(false); 42 | mDataBinding.recyclerView.setItemAnimator(new DefaultItemAnimator()); 43 | mAdapter = new SongMenuAdapter(getActivity()); 44 | mDataBinding.recyclerView.setAdapter(mAdapter); 45 | } 46 | 47 | @Override 48 | protected void loadData() { 49 | 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/friends/ContactsFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.friends; 2 | 3 | import com.ximsfei.skindemo.R; 4 | import com.ximsfei.skindemo.ui.base.BaseFragment; 5 | 6 | /** 7 | * Created by ximsfei on 17-1-8. 8 | */ 9 | 10 | public class ContactsFragment extends BaseFragment { 11 | @Override 12 | protected int getLayoutId() { 13 | return R.layout.fragment_contacts; 14 | } 15 | 16 | @Override 17 | protected void loadData() { 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/friends/FeedsFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.friends; 2 | 3 | import com.ximsfei.skindemo.R; 4 | import com.ximsfei.skindemo.ui.base.BaseFragment; 5 | 6 | /** 7 | * Created by ximsfei on 17-1-8. 8 | */ 9 | 10 | public class FeedsFragment extends BaseFragment { 11 | @Override 12 | protected int getLayoutId() { 13 | return R.layout.fragment_feeds; 14 | } 15 | 16 | @Override 17 | protected void loadData() { 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/ui/friends/NearbyFragment.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.ui.friends; 2 | 3 | import com.ximsfei.skindemo.R; 4 | import com.ximsfei.skindemo.ui.base.BaseFragment; 5 | 6 | /** 7 | * Created by ximsfei on 17-1-8. 8 | */ 9 | 10 | public class NearbyFragment extends BaseFragment { 11 | @Override 12 | protected int getLayoutId() { 13 | return R.layout.fragment_nearby; 14 | } 15 | 16 | @Override 17 | protected void loadData() { 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/utils/SPUtils.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.utils; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | 6 | import skin.support.SkinCompatManager; 7 | 8 | /** 9 | * Created by ximsfei on 17-1-8. 10 | */ 11 | 12 | public class SPUtils { 13 | private static final String FILE_NAME = "meta-data"; 14 | 15 | private static final String KEY_MODE_NIGHT = "mode-night"; 16 | private static final String KEY_CUR_SKIN = "cur-skin"; 17 | private static SPUtils sInstance; 18 | private final Context mApp; 19 | private final SharedPreferences mPref; 20 | private final SharedPreferences.Editor mEditor; 21 | 22 | public static void init(Context context) { 23 | if (sInstance == null) { 24 | synchronized (SPUtils.class) { 25 | if (sInstance == null) { 26 | sInstance = new SPUtils(context.getApplicationContext()); 27 | } 28 | } 29 | } 30 | } 31 | 32 | public static SPUtils getInstance() { 33 | return sInstance; 34 | } 35 | 36 | private SPUtils(Context applicationContext) { 37 | mApp = applicationContext; 38 | mPref = mApp.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); 39 | mEditor = mPref.edit(); 40 | } 41 | 42 | public SPUtils setNightMode(boolean nightMode) { 43 | mEditor.putBoolean(KEY_MODE_NIGHT, nightMode); 44 | return this; 45 | } 46 | 47 | public boolean getNightMode() { 48 | return mPref.getBoolean(KEY_MODE_NIGHT, false); 49 | } 50 | 51 | public void commitEditor() { 52 | mEditor.apply(); 53 | } 54 | 55 | public SPUtils setCurSkin(String curSkinName) { 56 | mEditor.putString(KEY_CUR_SKIN, curSkinName); 57 | return this; 58 | } 59 | 60 | public String getCurSkin() { 61 | return mPref.getString(KEY_CUR_SKIN, ""); 62 | } 63 | } -------------------------------------------------------------------------------- /app/src/main/java/com/ximsfei/skindemo/widget/SquareImageView.java: -------------------------------------------------------------------------------- 1 | package com.ximsfei.skindemo.widget; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.ImageView; 6 | 7 | /** 8 | * Created by pengfengwang on 2017/1/16. 9 | */ 10 | 11 | public class SquareImageView extends ImageView { 12 | private static final float DEFAULT_ASPECT_RATIO = 1.0f; 13 | private float mAspectRatio = DEFAULT_ASPECT_RATIO; 14 | 15 | public SquareImageView(Context context) { 16 | super(context); 17 | } 18 | 19 | public SquareImageView(Context context, AttributeSet attrs) { 20 | super(context, attrs); 21 | } 22 | 23 | public SquareImageView(Context context, AttributeSet attrs, int defStyleAttr) { 24 | super(context, attrs, defStyleAttr); 25 | } 26 | 27 | @Override 28 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 29 | super.onMeasure(widthMeasureSpec, heightMeasureSpec); 30 | if (mAspectRatio <= 0) { 31 | mAspectRatio = DEFAULT_ASPECT_RATIO; 32 | } 33 | setMeasuredDimension(getMeasuredWidth(), (int) (getMeasuredWidth() * mAspectRatio)); 34 | } 35 | 36 | public void setAspectRatio(float aspectRatio) { 37 | mAspectRatio = aspectRatio; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/res/anim/screen_zoom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/anim/screen_zoom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/color/day_recommend_color_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/fine_song_background_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/select_song_menu_stroke_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/color/selectable_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/b_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/b_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/b_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/b_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/b_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/b_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/b_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/b_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/b_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/b_5.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/b_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/b_6.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/ic_screen_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/ic_screen_default.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash0.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash1.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash10.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash11.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash12.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash13.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash14.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash15.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash16.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash2.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash3.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash4.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash5.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash6.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash7.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash8.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-nodpi/splash9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-nodpi/splash9.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/header_layout_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/header_layout_bg.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_14.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_15.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_16.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_17.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_18.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_19.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_20.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_21.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_22.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_23.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_24.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_25.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_26.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_27.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_28.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_29.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_30.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/home_six_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/home_six_9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/message.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/photo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xhdpi/photo.jpeg -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/actionbar_discover_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/actionbar_discover_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/actionbar_discover_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/actionbar_discover_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/actionbar_friends_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/actionbar_friends_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/actionbar_friends_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/actionbar_friends_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/actionbar_music_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/actionbar_music_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/actionbar_music_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/actionbar_music_selected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/android_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/android_group.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/home_banner_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/home_banner_9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_banner_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_banner_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_banner_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_banner_red.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_birthday_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_birthday_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_birthday_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_birthday_pressed.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_day_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_day_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_day_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_day_pressed.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_daynight_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_daynight_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_driving_mode_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_driving_mode_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_fm_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_fm_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_fm_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_fm_pressed.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_indicator_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_indicator_0.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_indicator_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_indicator_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_indicator_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_indicator_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_indicator_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_indicator_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_indicator_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_indicator_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_message_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_message_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_more_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_more_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_music_alarm_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_music_alarm_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_online_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_online_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_rank_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_rank_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_rank_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_rank_pressed.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_scanner_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_scanner_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_search_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_search_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_shopping_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_shopping_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_skin_selected_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_skin_selected_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_sound_hound_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_sound_hound_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_theme_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_theme_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_timing_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_timing_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_vip_indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/ic_vip_indicator.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/loading.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/login_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/login_bg.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/sign_in_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/sign_in_normal.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/sign_in_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/sign_in_pressed.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/skin_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/skin_color.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/skin_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/skin_red.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/skin_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ximsfei/Skin-Demo/2ff865443fb658a5a76a0f2053aa5bb1997d88d0/app/src/main/res/drawable-xxhdpi/skin_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/actionbar_discover.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/actionbar_friends.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/actionbar_music.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/day_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fm_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/home_adjust_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rank_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/select_song_menu_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_bg_level.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_bg_sign.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/sign_in_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_about_skin_lib.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 14 | 15 | 16 | 20 | 21 | 28 | 29 | 38 | 39 | 40 | 41 | 42 | 48 | 49 | 58 | 59 | 68 | 69 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 18 | 19 | 24 | 25 | 28 | 29 | 30 | 34 | 35 | 42 | 43 | 48 | 49 | 57 | 58 | 66 | 67 | 75 | 76 | 77 | 78 | 79 | 80 | 84 | 85 | 86 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_skin_lib.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 14 | 15 | 16 | 20 | 21 | 28 | 29 | 38 | 39 | 40 | 41 | 42 | 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 |