├── .gitignore
├── .idea
├── .name
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── encodings.xml
├── gradle.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
└── vcs.xml
├── README.md
├── build.gradle
├── captures
└── Allocations_2015.08.22_21.42.28.alloc
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── opreader
├── .gitignore
├── build.gradle
├── libs
│ ├── butterknife-6.1.0.jar
│ ├── eventbus-2.4.0.jar
│ ├── glide-3.6.0.jar
│ └── jsoup-1.8.2.jar
├── opreader.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── opreader
│ │ └── ApplicationTest.java
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── opreader
│ │ ├── Bean
│ │ ├── Info.java
│ │ └── MenuBean.java
│ │ └── View
│ │ ├── DataAdapter.java
│ │ ├── MainActivity.java
│ │ └── ManHuaActivity.java
│ └── res
│ ├── drawable
│ └── p11.png
│ ├── layout
│ ├── activity_main.xml
│ ├── activity_manhua.xml
│ ├── cell_manhua.xml
│ └── cell_menu.xml
│ ├── menu
│ └── menu_main.xml
│ ├── mipmap-hdpi
│ └── ic_launcher.png
│ ├── mipmap-mdpi
│ └── ic_launcher.png
│ ├── mipmap-xhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxhdpi
│ └── ic_launcher.png
│ ├── values-v21
│ └── styles.xml
│ ├── values-w820dp
│ └── dimens.xml
│ └── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
├── poishuhui
├── .gitignore
├── build.gradle
├── libs
│ ├── butterknife-6.1.0.jar
│ ├── disklrucache-2.0.2.jar
│ ├── glide-3.6.0.jar
│ ├── jsoup-1.8.2.jar
│ ├── photoview-1.2.2.jar
│ └── volly-1.0.11.jar
├── poishuhui.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── poishuhui
│ │ └── ApplicationTest.java
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── poishuhui
│ │ ├── Adapters
│ │ ├── ChildNewsAdapter.java
│ │ ├── ContainerLinearAdapter.java
│ │ ├── GridAdapter.java
│ │ ├── Impl
│ │ │ └── OnCellClickListener.java
│ │ ├── PageAdapter.java
│ │ └── StaggeredAdapter.java
│ │ ├── Beans
│ │ ├── ChildItemBean.java
│ │ ├── ComicBean.java
│ │ ├── ContainerBean.java
│ │ ├── ItemBean.java
│ │ └── PageBean.java
│ │ ├── Utils
│ │ ├── HtmlTask.java
│ │ ├── HtmlUtil.java
│ │ ├── Utils.java
│ │ └── VolleyUtils
│ │ │ ├── BitmapHelper.java
│ │ │ ├── SDiskLruCache.java
│ │ │ ├── SMemoryLruCache.java
│ │ │ └── SVolleyHelper.java
│ │ └── Views
│ │ ├── Activities
│ │ ├── ComicActivity.java
│ │ ├── ComicDetailActivity.java
│ │ ├── MainActivity.java
│ │ └── NewsDetailActivity.java
│ │ ├── CustomViews
│ │ ├── PageBar.java
│ │ ├── SlideLayout.java
│ │ └── SunnyLoad.java
│ │ └── Fragments
│ │ ├── ComicBookListFragment.java
│ │ ├── ComicListFragment.java
│ │ ├── ComicNewsFragment.java
│ │ └── MainFragment.java
│ └── res
│ ├── drawable-hdpi
│ ├── ic_arrow_left_black_18dp.png
│ ├── ic_arrow_left_black_24dp.png
│ ├── ic_arrow_left_black_36dp.png
│ ├── ic_arrow_left_black_48dp.png
│ ├── ic_arrow_left_grey600_18dp.png
│ ├── ic_arrow_left_grey600_24dp.png
│ ├── ic_arrow_left_grey600_36dp.png
│ ├── ic_arrow_left_grey600_48dp.png
│ ├── ic_arrow_left_white_18dp.png
│ ├── ic_arrow_left_white_24dp.png
│ ├── ic_arrow_left_white_36dp.png
│ └── ic_arrow_left_white_48dp.png
│ ├── drawable-mdpi
│ ├── ic_arrow_left_black_18dp.png
│ ├── ic_arrow_left_black_24dp.png
│ ├── ic_arrow_left_black_36dp.png
│ ├── ic_arrow_left_black_48dp.png
│ ├── ic_arrow_left_grey600_18dp.png
│ ├── ic_arrow_left_grey600_24dp.png
│ ├── ic_arrow_left_grey600_36dp.png
│ ├── ic_arrow_left_grey600_48dp.png
│ ├── ic_arrow_left_white_18dp.png
│ ├── ic_arrow_left_white_24dp.png
│ ├── ic_arrow_left_white_36dp.png
│ └── ic_arrow_left_white_48dp.png
│ ├── drawable-v21
│ └── arrow_left.xml
│ ├── drawable-xhdpi
│ ├── ic_arrow_left_black_18dp.png
│ ├── ic_arrow_left_black_24dp.png
│ ├── ic_arrow_left_black_36dp.png
│ ├── ic_arrow_left_black_48dp.png
│ ├── ic_arrow_left_grey600_18dp.png
│ ├── ic_arrow_left_grey600_24dp.png
│ ├── ic_arrow_left_grey600_36dp.png
│ ├── ic_arrow_left_grey600_48dp.png
│ ├── ic_arrow_left_white_18dp.png
│ ├── ic_arrow_left_white_24dp.png
│ ├── ic_arrow_left_white_36dp.png
│ └── ic_arrow_left_white_48dp.png
│ ├── drawable-xxhdpi
│ ├── ic_arrow_left_black_18dp.png
│ ├── ic_arrow_left_black_24dp.png
│ ├── ic_arrow_left_black_36dp.png
│ ├── ic_arrow_left_black_48dp.png
│ ├── ic_arrow_left_grey600_18dp.png
│ ├── ic_arrow_left_grey600_24dp.png
│ ├── ic_arrow_left_grey600_36dp.png
│ ├── ic_arrow_left_grey600_48dp.png
│ ├── ic_arrow_left_white_18dp.png
│ ├── ic_arrow_left_white_24dp.png
│ ├── ic_arrow_left_white_36dp.png
│ ├── ic_arrow_left_white_48dp.png
│ └── ic_logo.png
│ ├── drawable-xxxhdpi
│ ├── ic_arrow_left_black_18dp.png
│ ├── ic_arrow_left_black_24dp.png
│ ├── ic_arrow_left_black_36dp.png
│ ├── ic_arrow_left_black_48dp.png
│ ├── ic_arrow_left_grey600_18dp.png
│ ├── ic_arrow_left_grey600_24dp.png
│ ├── ic_arrow_left_grey600_36dp.png
│ ├── ic_arrow_left_grey600_48dp.png
│ ├── ic_arrow_left_white_18dp.png
│ ├── ic_arrow_left_white_24dp.png
│ ├── ic_arrow_left_white_36dp.png
│ └── ic_arrow_left_white_48dp.png
│ ├── drawable
│ └── arrow_left.xml
│ ├── layout-v21
│ ├── activity_comic.xml
│ ├── activity_comic_detail.xml
│ ├── activity_main.xml
│ ├── activity_news_detail.xml
│ ├── child_news_item.xml
│ ├── comic_item.xml
│ ├── comic_view.xml
│ ├── fragment_comic_booklist.xml
│ ├── fragment_comic_list.xml
│ ├── fragment_comic_news.xml
│ ├── fragment_main.xml
│ ├── news_container_item.xml
│ ├── page_item.xml
│ └── pagebar.xml
│ ├── layout
│ ├── activity_comic.xml
│ ├── activity_comic_detail.xml
│ ├── activity_main.xml
│ ├── activity_news_detail.xml
│ ├── child_news_item.xml
│ ├── comic_item.xml
│ ├── comic_view.xml
│ ├── fragment_comic_booklist.xml
│ ├── fragment_comic_list.xml
│ ├── fragment_comic_news.xml
│ ├── fragment_main.xml
│ ├── news_container_item.xml
│ ├── page_item.xml
│ └── pagebar.xml
│ ├── menu
│ └── menu_start.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
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
├── sceenshots
├── Image1.png
├── Image2.png
├── Image3.png
├── Image4.png
└── Image5.png
├── settings.gradle
├── shader
├── .gitignore
├── build.gradle
├── libs
│ ├── butterknife-6.1.0.jar
│ └── eventbus-2.4.0.jar
├── proguard-rules.pro
├── shader.iml
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── shader
│ │ └── ApplicationTest.java
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── shader
│ │ ├── Activity
│ │ ├── AddTipActivity.java
│ │ ├── MainActivity.java
│ │ └── NotificationStartedActivity.java
│ │ ├── Adapter
│ │ └── TipsRecyclerAdapter.java
│ │ ├── Bean
│ │ └── TipBean.java
│ │ ├── ClockDBHelper.java
│ │ ├── Reciver
│ │ └── TipsReciver.java
│ │ ├── Utils.java
│ │ └── View
│ │ ├── CellTip.java
│ │ ├── CircleRevealLayout.java
│ │ └── PullToRefresh.java
│ └── res
│ ├── drawable
│ ├── circle_background.xml
│ └── photo_background.jpg
│ ├── layout-v21
│ ├── cell_tip.xml
│ └── headerview.xml
│ ├── layout
│ ├── activity_addtip.xml
│ ├── activity_addtip_main.xml
│ ├── activity_main.xml
│ ├── activity_notification_started.xml
│ ├── cell_tip.xml
│ └── headerview.xml
│ ├── menu
│ └── menu_main.xml
│ ├── mipmap-hdpi
│ └── ic_launcher.png
│ ├── mipmap-mdpi
│ └── ic_launcher.png
│ ├── mipmap-xhdpi
│ └── ic_launcher.png
│ ├── mipmap-xxhdpi
│ ├── ic_access_time_grey600_24dp.png
│ ├── ic_check_black_24dp.png
│ ├── ic_delete_white_24dp.png
│ ├── ic_launcher.png
│ ├── ic_plus_black_24dp.png
│ └── ic_view_day_grey600_24dp.png
│ ├── values-w820dp
│ └── dimens.xml
│ └── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
└── volleytest
├── .gitignore
├── build.gradle
├── libs
├── butterknife-6.1.0.jar
├── jsoup-1.8.2.jar
└── volly-1.0.11.jar
├── proguard-rules.pro
├── src
├── androidTest
│ └── java
│ │ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── volleytest
│ │ └── ApplicationTest.java
└── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── flying
│ │ └── xiaopo
│ │ └── volleytest
│ │ └── MainActivity.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_launcher.png
│ ├── drawable-mdpi
│ └── ic_launcher.png
│ ├── drawable-xhdpi
│ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ └── ic_launcher.png
│ ├── layout
│ └── activity_main.xml
│ ├── menu
│ └── menu_main.xml
│ ├── values-w820dp
│ └── dimens.xml
│ └── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
└── volleytest.iml
/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | /local.properties
3 | /.idea/workspace.xml
4 | /.idea/libraries
5 | .DS_Store
6 | /build
7 | *.iml
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | PoiShuHui
--------------------------------------------------------------------------------
/.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 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 1.8
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PoiShuHui
2 | 我自己做的一些小东西。
3 | PoiShuhui是一个看漫画的App,本来是因为想看海贼王的最新漫画,所以一开始只爬了OP的数据,后来就干脆把所有数据爬啦下来,数据来源自[鼠绘漫画网](http://ishuhui.net/ "鼠绘")。
4 |
5 | 其中其他的moudle中OPReader是最之前看OP的App,shadow是一个设置时间发送提示的App,Volley是一个爬取数据的测试类。
6 |
7 |
8 | 下面是效果的截图:
9 |
10 |
11 | 
12 |
13 |
14 |
15 |
16 | 
17 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:1.0.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | jcenter()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/captures/Allocations_2015.08.22_21.42.28.alloc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/captures/Allocations_2015.08.22_21.42.28.alloc
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | ## Project-wide Gradle settings.
2 | #
3 | # For more details on how to configure your build environment visit
4 | # http://www.gradle.org/docs/current/userguide/build_environment.html
5 | #
6 | # Specifies the JVM arguments used for the daemon process.
7 | # The setting is particularly useful for tweaking memory settings.
8 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
9 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
10 | #
11 | # When configured, Gradle will run in incubating parallel mode.
12 | # This option should only be used with decoupled projects. More details, visit
13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
14 | # org.gradle.parallel=true
15 | #Thu Aug 06 15:04:26 CST 2015
16 | systemProp.http.proxyHost=mirrors.opencas.cn
17 | systemProp.http.proxyPort=80
18 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Apr 10 15:27:10 PDT 2013
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/opreader/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/opreader/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 21
5 | buildToolsVersion "22.0.0"
6 |
7 | defaultConfig {
8 | applicationId "com.flying.xiaopo.opreader"
9 | minSdkVersion 21
10 | targetSdkVersion 21
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | compile files('libs/butterknife-6.1.0.jar')
25 | compile files('libs/eventbus-2.4.0.jar')
26 | compile files('libs/glide-3.6.0.jar')
27 | compile files('libs/jsoup-1.8.2.jar')
28 | compile 'com.android.support:cardview-v7:21.0.3'
29 | compile 'com.android.support:recyclerview-v7:21.0.3'
30 | compile 'com.android.support:palette-v7:21.0.3'
31 | }
32 |
--------------------------------------------------------------------------------
/opreader/libs/butterknife-6.1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/libs/butterknife-6.1.0.jar
--------------------------------------------------------------------------------
/opreader/libs/eventbus-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/libs/eventbus-2.4.0.jar
--------------------------------------------------------------------------------
/opreader/libs/glide-3.6.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/libs/glide-3.6.0.jar
--------------------------------------------------------------------------------
/opreader/libs/jsoup-1.8.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/libs/jsoup-1.8.2.jar
--------------------------------------------------------------------------------
/opreader/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 E:\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 |
--------------------------------------------------------------------------------
/opreader/src/androidTest/java/com/flying/xiaopo/opreader/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.opreader;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/opreader/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/opreader/src/main/java/com/flying/xiaopo/opreader/Bean/Info.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.opreader.Bean;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | *
7 | * Created by lenovo on 2015/5/31.
8 | */
9 | public class Info {
10 | List strings;
11 | public Info(List strings){
12 | this.strings = strings;
13 |
14 | }
15 |
16 | public List getStrings() {
17 | return strings;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/opreader/src/main/java/com/flying/xiaopo/opreader/Bean/MenuBean.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.opreader.Bean;
2 |
3 | /**
4 | * javabean
5 | * Created by lenovo on 2015/5/31.
6 | */
7 | public class MenuBean {
8 | public String autolink;
9 | public String Url_pic;
10 | public String title;
11 |
12 | public MenuBean() {
13 | }
14 |
15 | public MenuBean(String title, String url_pic) {
16 | this.title = title;
17 | Url_pic = url_pic;
18 | }
19 | public void setAutolink(String autolink) {
20 | this.autolink = autolink;
21 | }
22 |
23 | public String getAutolink() {
24 |
25 | return autolink;
26 | }
27 |
28 |
29 |
30 |
31 | public void setUrl_pic(String url_pic) {
32 | Url_pic = url_pic;
33 | }
34 |
35 | public void setTitle(String title) {
36 |
37 | this.title = title;
38 | }
39 |
40 | public String getUrl_pic() {
41 |
42 | return Url_pic;
43 | }
44 |
45 | public String getTitle() {
46 |
47 | return title;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/opreader/src/main/java/com/flying/xiaopo/opreader/View/DataAdapter.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.opreader.View;
2 |
3 | import android.content.Context;
4 | import android.support.v7.widget.CardView;
5 | import android.support.v7.widget.RecyclerView;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import android.widget.ImageView;
10 | import android.widget.TextView;
11 |
12 | import com.bumptech.glide.Glide;
13 | import com.flying.xiaopo.opreader.Bean.MenuBean;
14 | import com.flying.xiaopo.opreader.R;
15 |
16 | import java.util.List;
17 |
18 | import butterknife.ButterKnife;
19 | import butterknife.InjectView;
20 |
21 | /**
22 | * Created by lenovo on 2015/5/31.
23 | */
24 | public class DataAdapter extends RecyclerView.Adapter implements View.OnClickListener {
25 |
26 |
27 |
28 | public interface OnCellClickListener{
29 | void onCellClick(View view);
30 | }
31 |
32 | public void setOnCellClickListener(OnCellClickListener onCellClickListener) {
33 | this.onCellClickListener = onCellClickListener;
34 | }
35 |
36 | private OnCellClickListener onCellClickListener;
37 | private List beans;
38 | private Context context;
39 |
40 | public DataAdapter(Context context){
41 | this.context = context;
42 | }
43 |
44 | public void ObtainData(List beans){
45 | this.beans = beans;
46 | }
47 |
48 |
49 |
50 |
51 | @Override
52 | public DataViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
53 | View rootView = LayoutInflater.from(parent.getContext()).inflate(R.layout.cell_menu, parent, false);
54 | return new DataViewHolder(rootView);
55 | }
56 |
57 | @Override
58 | public void onBindViewHolder(DataViewHolder holder, int position) {
59 | MenuBean bean = beans.get(position);
60 | holder.tv_title.setText(bean.getTitle());
61 | holder.cell_container.setTag(bean.getAutolink());
62 | Glide.with(context).load(bean.getUrl_pic()).centerCrop().placeholder(R.drawable.p11).crossFade().into(holder.iv_small_pic);
63 | holder.cell_container.setOnClickListener(this);
64 |
65 | }
66 |
67 | @Override
68 | public void onClick(View v) {
69 | if (onCellClickListener!=null){
70 | onCellClickListener.onCellClick(v);
71 | }
72 | }
73 |
74 | @Override
75 | public int getItemCount() {
76 | return beans.size();
77 | }
78 |
79 |
80 | public static class DataViewHolder extends RecyclerView.ViewHolder {
81 | @InjectView(R.id.cell_container)
82 | CardView cell_container;
83 | @InjectView(R.id.iv_small_pic)
84 | ImageView iv_small_pic;
85 | @InjectView(R.id.tv_title)
86 | TextView tv_title;
87 |
88 | public DataViewHolder(View itemView) {
89 | super(itemView);
90 | ButterKnife.inject(this, itemView);
91 | }
92 | }
93 |
94 | }
95 |
--------------------------------------------------------------------------------
/opreader/src/main/java/com/flying/xiaopo/opreader/View/ManHuaActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/src/main/java/com/flying/xiaopo/opreader/View/ManHuaActivity.java
--------------------------------------------------------------------------------
/opreader/src/main/res/drawable/p11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/src/main/res/drawable/p11.png
--------------------------------------------------------------------------------
/opreader/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
18 |
19 |
20 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/opreader/src/main/res/layout/activity_manhua.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 | -->
13 |
14 |
15 |
19 |
23 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/opreader/src/main/res/layout/cell_manhua.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/opreader/src/main/res/layout/cell_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
19 |
20 |
27 |
28 |
34 |
35 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/opreader/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/opreader/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/opreader/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/opreader/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/opreader/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/opreader/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/opreader/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
--------------------------------------------------------------------------------
/opreader/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/opreader/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 8dp
6 |
7 |
--------------------------------------------------------------------------------
/opreader/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | OPReader
3 |
4 | Hello world!
5 | Settings
6 |
7 |
--------------------------------------------------------------------------------
/opreader/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/poishuhui/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/poishuhui/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 22
5 | buildToolsVersion "23.0.0"
6 |
7 | defaultConfig {
8 | applicationId "com.flying.xiaopo.poishuhui"
9 | minSdkVersion 17
10 | targetSdkVersion 22
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 | repositories {
22 | mavenCentral()
23 | }
24 | dependencies {
25 | compile fileTree(include: ['*.jar'], dir: 'libs')
26 | compile 'com.android.support:appcompat-v7:22.2.0'
27 | compile files('libs/butterknife-6.1.0.jar')
28 | compile files('libs/glide-3.6.0.jar')
29 | compile files('libs/jsoup-1.8.2.jar')
30 | compile files('libs/photoview-1.2.2.jar')
31 | compile 'com.android.support:design:22.2.0'
32 | compile 'com.android.support:cardview-v7:22.2.0'
33 | compile 'com.android.support:recyclerview-v7:22.2.0'
34 | compile files('libs/volly-1.0.11.jar')
35 | compile files('libs/disklrucache-2.0.2.jar')
36 | }
37 |
--------------------------------------------------------------------------------
/poishuhui/libs/butterknife-6.1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/libs/butterknife-6.1.0.jar
--------------------------------------------------------------------------------
/poishuhui/libs/disklrucache-2.0.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/libs/disklrucache-2.0.2.jar
--------------------------------------------------------------------------------
/poishuhui/libs/glide-3.6.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/libs/glide-3.6.0.jar
--------------------------------------------------------------------------------
/poishuhui/libs/jsoup-1.8.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/libs/jsoup-1.8.2.jar
--------------------------------------------------------------------------------
/poishuhui/libs/photoview-1.2.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/libs/photoview-1.2.2.jar
--------------------------------------------------------------------------------
/poishuhui/libs/volly-1.0.11.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/libs/volly-1.0.11.jar
--------------------------------------------------------------------------------
/poishuhui/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 E:\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 |
--------------------------------------------------------------------------------
/poishuhui/src/androidTest/java/com/flying/xiaopo/poishuhui/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/poishuhui/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
16 |
17 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
29 |
32 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Adapters/ChildNewsAdapter.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Adapters;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 | import android.support.v7.widget.RecyclerView;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import android.widget.LinearLayout;
10 | import android.widget.TextView;
11 |
12 | import com.flying.xiaopo.poishuhui.Beans.ChildItemBean;
13 | import com.flying.xiaopo.poishuhui.R;
14 | import com.flying.xiaopo.poishuhui.Views.Activities.NewsDetailActivity;
15 |
16 | import java.util.List;
17 |
18 | import butterknife.ButterKnife;
19 | import butterknife.InjectView;
20 |
21 | /**
22 | * 第4个Fragment的news的adapter
23 | * Created by xiaopo on 2015/9/3.
24 | */
25 | public class ChildNewsAdapter extends RecyclerView.Adapter {
26 | private LayoutInflater inflater;
27 | private Context context;
28 | private List child_data;
29 |
30 | public ChildNewsAdapter(Context context) {
31 | this.context = context;
32 | inflater = LayoutInflater.from(context);
33 | }
34 |
35 | public void obtainData(List child_data) {
36 | this.child_data = child_data;
37 | }
38 |
39 | public List getData() {
40 | return child_data;
41 | }
42 |
43 |
44 | @Override
45 | public ChildViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
46 | View itemView = inflater.inflate(R.layout.child_news_item, parent, false);
47 | return new ChildViewHolder(itemView);
48 | }
49 |
50 | @Override
51 | public void onBindViewHolder(ChildViewHolder holder, final int position) {
52 | final ChildItemBean bean = child_data.get(position);
53 | int resId = position % 2 == 0 ? R.color.news_gray : R.color.news_white;
54 | holder.child_news_container.setBackgroundResource(resId);
55 | holder.tv_news_title.setText(bean.getChildTitle());
56 | holder.tv_created_time.setText(bean.getCreatedTime());
57 | holder.child_news_container.setOnClickListener(new View.OnClickListener() {
58 | @Override
59 | public void onClick(View v) {
60 | Intent intent = new Intent();
61 | intent.setClass(context,NewsDetailActivity.class);
62 | intent.putExtra(NewsDetailActivity.INTENT_KEY_URL, child_data.get(position).getLink());
63 | intent.putExtra(NewsDetailActivity.INTENT_KEY_TITLE,child_data.get(position).getChildTitle());
64 | intent.putExtra(NewsDetailActivity.INTENT_KEY_TIME,child_data.get(position).getCreatedTime());
65 | context.startActivity(intent);
66 | }
67 | });
68 | }
69 |
70 | @Override
71 | public int getItemCount() {
72 | return child_data == null ? 0 : child_data.size();
73 | }
74 |
75 |
76 | public class ChildViewHolder extends RecyclerView.ViewHolder {
77 | @InjectView(R.id.tv_news_title)
78 | TextView tv_news_title;
79 | @InjectView(R.id.tv_created_time)
80 | TextView tv_created_time;
81 | @InjectView(R.id.child_news_container)
82 | LinearLayout child_news_container;
83 |
84 | public ChildViewHolder(View itemView) {
85 | super(itemView);
86 | ButterKnife.inject(this, itemView);
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Adapters/ContainerLinearAdapter.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Adapters;
2 |
3 | import android.content.Context;
4 | import android.support.v7.widget.LinearLayoutManager;
5 | import android.support.v7.widget.RecyclerView;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import android.widget.TextView;
10 |
11 | import com.flying.xiaopo.poishuhui.Adapters.Impl.OnCellClickListener;
12 | import com.flying.xiaopo.poishuhui.Beans.ComicBean;
13 | import com.flying.xiaopo.poishuhui.Beans.ContainerBean;
14 | import com.flying.xiaopo.poishuhui.R;
15 |
16 | import java.util.List;
17 |
18 | import butterknife.ButterKnife;
19 | import butterknife.InjectView;
20 |
21 | /**
22 | * 第四个Fragment的news容器Adapter
23 | * Created by xiaopo on 2015/9/3.
24 | */
25 | public class ContainerLinearAdapter extends RecyclerView.Adapter {
26 |
27 |
28 | private List container_data;
29 |
30 | private Context context;
31 |
32 | private LayoutInflater inflater;
33 |
34 |
35 | public ContainerLinearAdapter(Context context) {
36 | this.context = context;
37 | inflater = LayoutInflater.from(context);
38 | }
39 |
40 | public void obtainData(List data) {
41 | container_data = data;
42 | }
43 |
44 | public List getData() {
45 | return container_data;
46 | }
47 |
48 |
49 | @Override
50 | public NewsContainerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
51 | View itemView = inflater.inflate(R.layout.news_container_item, parent, false);
52 | return new NewsContainerViewHolder(itemView);
53 | }
54 |
55 | @Override
56 | public void onBindViewHolder(NewsContainerViewHolder holder, int position) {
57 | holder.tv_container_title.setText(container_data.get(position).getTitle());
58 | LinearLayoutManager manager = new LinearLayoutManager(context);
59 | ChildNewsAdapter adapter = new ChildNewsAdapter(context);
60 | holder.rv_child_container.setAdapter(adapter);
61 | holder.rv_child_container.setLayoutManager(manager);
62 | adapter.obtainData(container_data.get(position).getChildDataList());
63 | adapter.notifyDataSetChanged();
64 | }
65 |
66 | @Override
67 | public int getItemCount() {
68 | return container_data == null ? 0 : container_data.size();
69 | }
70 |
71 | public class NewsContainerViewHolder extends RecyclerView.ViewHolder {
72 | @InjectView(R.id.tv_container_title)
73 | TextView tv_container_title;
74 | @InjectView(R.id.tv_more)
75 | TextView tv_more;
76 | @InjectView(R.id.rv_child_container)
77 | RecyclerView rv_child_container;
78 |
79 | public NewsContainerViewHolder(View itemView) {
80 | super(itemView);
81 | ButterKnife.inject(this, itemView);
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Adapters/GridAdapter.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Adapters;
2 |
3 | import android.content.Context;
4 | import android.support.v7.widget.RecyclerView;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.view.ViewGroup;
8 | import android.widget.ImageView;
9 | import android.widget.TextView;
10 |
11 | import com.flying.xiaopo.poishuhui.Adapters.Impl.OnCellClickListener;
12 | import com.flying.xiaopo.poishuhui.Beans.ItemBean;
13 | import com.flying.xiaopo.poishuhui.R;
14 | import com.flying.xiaopo.poishuhui.Utils.VolleyUtils.BitmapHelper;
15 |
16 | import java.util.ArrayList;
17 | import java.util.List;
18 |
19 | import butterknife.ButterKnife;
20 | import butterknife.InjectView;
21 |
22 | /**
23 | * 网格Adapter
24 | * Created by xiaopo on 2015/8/14.
25 | */
26 | public class GridAdapter extends RecyclerView.Adapter {
27 | Context context;
28 |
29 | protected LayoutInflater inflater;
30 |
31 | List mData;
32 |
33 |
34 | OnCellClickListener onCellClickListener;
35 |
36 | //MyCache myCache;
37 |
38 | //RequestQueue mQueue;
39 |
40 | public GridAdapter(Context context) {
41 | this.context = context;
42 | inflater = LayoutInflater.from(context);
43 | mData = new ArrayList<>();
44 | //mQueue = Volley.newRequestQueue(context);
45 | //myCache = new MyCache();
46 | }
47 |
48 | /**
49 | * 提供外部获取数据的方法
50 | */
51 | public void obtainData(List data) {
52 | mData = data;
53 | }
54 |
55 | public List getData() {
56 | return mData;
57 | }
58 |
59 | public void setOnCellClickListener(OnCellClickListener onCellClickListener) {
60 | this.onCellClickListener = onCellClickListener;
61 | }
62 |
63 | @Override
64 | public CellViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
65 | View itemView = inflater.inflate(R.layout.comic_item, parent, false);
66 | return new CellViewHolder(itemView);
67 | }
68 |
69 | @Override
70 | public void onBindViewHolder(CellViewHolder holder, final int position) {
71 | // Glide.with(context).load(mData.get(position).getImageURL()).into(holder.iv_content);
72 | String url = mData.get(position).getImageURL();
73 | // if (myCache.getBitmap(url) != null)
74 | // holder.iv_content.setImageBitmap(myCache.getBitmap(url));
75 | // else {
76 | // ImageLoader loader = new ImageLoader(mQueue, myCache);
77 | // ImageLoader.ImageListener listener = ImageLoader.getImageListener(holder.iv_content, R.color.default_color, R.mipmap.ic_launcher);
78 | // loader.get(url, listener, 200, 200);
79 | // }
80 |
81 | BitmapHelper.load2ImageView(context.getApplicationContext(), holder.iv_content, url, 200, 200,null);
82 |
83 | holder.tv_title.setText(mData.get(position).getTitle());
84 | //holder.iv_content.setTag(mData.get(position).getLink());
85 | holder.iv_content.setOnClickListener(new View.OnClickListener() {
86 | @Override
87 | public void onClick(View v) {
88 | // Snackbar.make(v, mData.get(position).getLink(), Snackbar.LENGTH_SHORT).show();
89 | if (onCellClickListener != null) onCellClickListener.onCellClick(v, position);
90 | }
91 | });
92 | }
93 |
94 | @Override
95 | public int getItemCount() {
96 | return mData == null ? 0 : mData.size();
97 | }
98 |
99 | public static class CellViewHolder extends RecyclerView.ViewHolder {
100 | @InjectView(R.id.iv_content)
101 | ImageView iv_content;
102 | @InjectView(R.id.tv_title)
103 | TextView tv_title;
104 |
105 | public CellViewHolder(View itemView) {
106 | super(itemView);
107 | ButterKnife.inject(this, itemView);
108 | }
109 |
110 | public TextView getTv_title() {
111 | return tv_title;
112 | }
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Adapters/Impl/OnCellClickListener.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Adapters.Impl;
2 |
3 | import android.view.View;
4 |
5 | /**
6 | * RecyclerView的Item点击事件接口
7 | * Created by xiaopo on 2015/9/4.
8 | */
9 | public interface OnCellClickListener {
10 | void onCellClick(View view, int position);
11 | }
12 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Adapters/PageAdapter.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Adapters;
2 |
3 | import android.content.Context;
4 | import android.support.v7.widget.RecyclerView;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.view.ViewGroup;
8 | import android.widget.TextView;
9 |
10 | import com.flying.xiaopo.poishuhui.Adapters.Impl.OnCellClickListener;
11 | import com.flying.xiaopo.poishuhui.Beans.PageBean;
12 | import com.flying.xiaopo.poishuhui.R;
13 |
14 | import java.util.List;
15 |
16 | import butterknife.ButterKnife;
17 | import butterknife.InjectView;
18 |
19 | /**
20 | * PageAdapter
21 | * Created by lenovo on 2015/9/6.
22 | */
23 | public class PageAdapter extends RecyclerView.Adapter {
24 | private LayoutInflater inflater;
25 |
26 |
27 |
28 | private List datas;
29 |
30 | OnCellClickListener onCellClickListener;
31 |
32 | public PageAdapter(Context context) {
33 | inflater = LayoutInflater.from(context);
34 | }
35 |
36 | public List getDatas() {
37 | return datas;
38 | }
39 |
40 | public void setOnCellClickListener(OnCellClickListener onCellClickListener) {
41 | this.onCellClickListener = onCellClickListener;
42 | }
43 |
44 |
45 | public void obtainData(List datas) {
46 | this.datas = datas;
47 | }
48 |
49 | @Override
50 | public PageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
51 | View itemView = inflater.inflate(R.layout.page_item, parent, false);
52 | return new PageViewHolder(itemView);
53 | }
54 |
55 | @Override
56 | public void onBindViewHolder(PageViewHolder holder, final int position) {
57 | holder.tv_page.setText(datas.get(position).getText());
58 | holder.tv_page.setOnClickListener(new View.OnClickListener() {
59 | @Override
60 | public void onClick(View v) {
61 | if (onCellClickListener != null) onCellClickListener.onCellClick(v, position);
62 | }
63 | });
64 | }
65 |
66 | @Override
67 | public int getItemCount() {
68 | return datas == null ? 0 : datas.size();
69 | }
70 |
71 |
72 | public class PageViewHolder extends RecyclerView.ViewHolder {
73 | @InjectView(R.id.tv_page)
74 | TextView tv_page;
75 |
76 | public PageViewHolder(View itemView) {
77 | super(itemView);
78 | ButterKnife.inject(this, itemView);
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Adapters/StaggeredAdapter.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Adapters;
2 |
3 | import android.content.Context;
4 | import android.view.ViewGroup;
5 |
6 | import com.flying.xiaopo.poishuhui.Beans.ItemBean;
7 | import com.flying.xiaopo.poishuhui.Utils.Utils;
8 |
9 | import java.util.ArrayList;
10 | import java.util.List;
11 |
12 | /**
13 | * 瀑布流的adapter
14 | * Created by xiaopo on 2015/8/19.
15 | */
16 | public class StaggeredAdapter extends GridAdapter {
17 | List heights;
18 |
19 | public StaggeredAdapter(Context context) {
20 | super(context);
21 | heights = new ArrayList<>();
22 | }
23 |
24 | @Override
25 | public void obtainData(List data) {
26 | super.obtainData(data);
27 | if (data==null) return;
28 | getRandomHeights(heights);
29 | }
30 |
31 | private void getRandomHeights(List heights) {
32 | for (int i = 0; i < super.mData.size(); i++) {
33 | heights.add((int) (Utils.dp2px(200) + Math.random() * Utils.dp2px(100)));
34 | }
35 | }
36 |
37 |
38 | @Override
39 | public void onBindViewHolder(CellViewHolder holder, int position) {
40 | if (mData.size() != 0) {
41 | ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
42 | layoutParams.height = heights.get(position);
43 | }
44 | super.onBindViewHolder(holder, position);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Beans/ChildItemBean.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Beans;
2 |
3 | /**
4 | * news的bean
5 | * Created by xiaopo on 2015/9/3.
6 | */
7 | public class ChildItemBean {
8 | private String childTitle;
9 | private String createdTime;
10 | private String link;
11 |
12 | public ChildItemBean(String childTitle, String createdTime, String link) {
13 | this.childTitle = childTitle;
14 | this.createdTime = createdTime;
15 | this.link = link;
16 | }
17 |
18 | public String getLink() {
19 | return link;
20 | }
21 |
22 | public void setLink(String link) {
23 | this.link = link;
24 | }
25 |
26 | public ChildItemBean() {
27 |
28 | }
29 |
30 | public String getChildTitle() {
31 | return childTitle;
32 | }
33 |
34 | public void setChildTitle(String childTitle) {
35 | this.childTitle = childTitle;
36 | }
37 |
38 | public String getCreatedTime() {
39 | return createdTime;
40 | }
41 |
42 | public void setCreatedTime(String createdTime) {
43 | this.createdTime = createdTime;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Beans/ComicBean.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Beans;
2 |
3 | /**
4 | * 漫画内容的bean
5 | * Created by xiaopo on 2015/8/20.
6 | */
7 | public class ComicBean{
8 | private String text;
9 | private String picURL;
10 |
11 | public String getPicURL() {
12 | return picURL;
13 | }
14 |
15 | public void setPicURL(String picURL) {
16 | this.picURL = picURL;
17 | }
18 |
19 | public String getText() {
20 | return text;
21 | }
22 |
23 | public void setText(String text) {
24 | this.text = text;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Beans/ContainerBean.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Beans;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * news容器的bean
7 | * Created by xiaopo on 2015/9/3.
8 | */
9 | public class ContainerBean {
10 | private String title; //container's title;
11 | private List childDataList;
12 |
13 | public ContainerBean() {
14 | }
15 |
16 | public ContainerBean(List childDataList, String title) {
17 | this.childDataList = childDataList;
18 | this.title = title;
19 | }
20 |
21 | public List getChildDataList() {
22 | return childDataList;
23 | }
24 |
25 | public void setChildDataList(List childDataList) {
26 | this.childDataList = childDataList;
27 | }
28 |
29 | public String getTitle() {
30 | return title;
31 | }
32 |
33 | public void setTitle(String title) {
34 | this.title = title;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Beans/ItemBean.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Beans;
2 |
3 | /**
4 | * 一些图片标题的Item的Bean
5 | * Created by xiaopo on 2015/8/14.
6 | */
7 | public class ItemBean {
8 | private String imageURL;
9 | private String title;
10 | private String link;
11 |
12 | public ItemBean() {
13 | }
14 |
15 | public ItemBean(String imageURL, String title, String link) {
16 | this.imageURL = imageURL;
17 | this.title = title;
18 | this.link = link;
19 | }
20 |
21 | public String getLink() {
22 | return link;
23 | }
24 |
25 | public void setLink(String link) {
26 | this.link = link;
27 | }
28 |
29 |
30 | public String getImageURL() {
31 | return imageURL;
32 | }
33 |
34 | public void setImageURL(String imageURL) {
35 | this.imageURL = imageURL;
36 | }
37 |
38 | public String getTitle() {
39 | return title;
40 | }
41 |
42 | public void setTitle(String title) {
43 | this.title = title;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Beans/PageBean.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Beans;
2 |
3 | /**
4 | * Created by lenovo on 2015/9/6.
5 | */
6 | public class PageBean {
7 | private String text;
8 | private String link;
9 |
10 | public String getLink() {
11 | return link;
12 | }
13 |
14 | public void setLink(String link) {
15 | this.link = link;
16 | }
17 |
18 | public String getText() {
19 | return text;
20 | }
21 |
22 | public void setText(String text) {
23 | this.text = text;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Utils/HtmlTask.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Utils;
2 |
3 | import android.os.AsyncTask;
4 |
5 | import com.flying.xiaopo.poishuhui.Beans.ItemBean;
6 |
7 | import java.util.ArrayList;
8 | import java.util.List;
9 |
10 | /**
11 | * 网络异步任务类
12 | * Created by xiaopo on 2015/8/14.
13 | */
14 | public class HtmlTask extends AsyncTask> {
15 | public static final String TASK_SLIDE = "slide";
16 | public static final String TASK_ITEM = "item";
17 | public static final String TASK_LIST = "list";
18 |
19 | @Override
20 | protected List doInBackground(String... params) {
21 | List list = new ArrayList<>();
22 | //list = HtmlUtil.obtainSlide(params[0]);
23 | switch (params[1]) {
24 | case TASK_SLIDE:
25 | list = HtmlUtil.obtainSlide(params[0]);
26 | break;
27 | case TASK_ITEM:
28 | list = HtmlUtil.obtainComicList(params[0]);
29 | break;
30 | case TASK_LIST:
31 | list = HtmlUtil.obtainComicBookList(params[0]);
32 | break;
33 | }
34 | return list;
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Utils/Utils.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Utils;
2 |
3 | import android.content.res.Resources;
4 |
5 | /**
6 | * 工具类
7 | * Created by lenovo on 2015/8/19.
8 | */
9 | public class Utils {
10 | public static int dp2px(int dp){
11 | return (int) (dp* Resources.getSystem().getDisplayMetrics().density);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Utils/VolleyUtils/BitmapHelper.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Utils.VolleyUtils;
2 |
3 | import android.content.Context;
4 | import android.graphics.Bitmap;
5 | import android.widget.ImageView;
6 |
7 | import com.android.volley.VolleyError;
8 | import com.android.volley.toolbox.ImageLoader;
9 | import com.flying.xiaopo.poishuhui.R;
10 |
11 | /**
12 | * 加载图片的工具类
13 | * Created by xiaopo on 2015/9/5.
14 | */
15 | public class BitmapHelper {
16 | /**
17 | * 图片加载
18 | * @param context 最好是应用的context
19 | * @param imageView 填充图片的imageview
20 | * @param url 网络图片的来源
21 | * @param width 允许图片的最大宽度
22 | * @param height 允许图片的最大高度
23 | * @param onLoadFinishedListener 加载成功和失败的监听
24 | */
25 | public static void load2ImageView(Context context, ImageView imageView, String url, int width, int height, OnLoadFinishedListener onLoadFinishedListener) {
26 | Bitmap bitmap = SMemoryLruCache.getInstance().getBitmap(url);
27 | if (bitmap != null) {
28 | imageView.setImageBitmap(bitmap);
29 | if (onLoadFinishedListener != null)
30 | onLoadFinishedListener.onLoadSuccessed();
31 | } else {
32 | loadFromInternet(context, imageView, url, width, height, onLoadFinishedListener);
33 | }
34 | }
35 |
36 | /**
37 | * 参数同上,磁盘和网络加载
38 | * @param context
39 | * @param imageView
40 | * @param url
41 | * @param width
42 | * @param height
43 | * @param onLoadFinishedListener
44 | */
45 | private static void loadFromInternet(Context context, final ImageView imageView, final String url, int width, int height, final OnLoadFinishedListener onLoadFinishedListener) {
46 | final SDiskLruCache mDiskLruCache = SDiskLruCache.getInstance(context);
47 | Bitmap bitmap = mDiskLruCache.getBitmap(url);
48 | if (bitmap != null) {
49 | imageView.setImageBitmap(bitmap);
50 | if (onLoadFinishedListener != null)
51 | onLoadFinishedListener.onLoadSuccessed();
52 | } else {
53 | //RequestQueue queue = SVolleyHelper.getInstance(context).getRequestQueue();
54 | ImageLoader loader = SVolleyHelper.getInstance(context).getLoader();
55 | ImageLoader.ImageListener listener = new ImageLoader.ImageListener() {
56 | @Override
57 | public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b) {
58 | if (imageContainer.getBitmap() != null) {
59 | imageView.setImageBitmap(imageContainer.getBitmap());
60 | mDiskLruCache.putBitmap(url, imageContainer.getBitmap());
61 | if (onLoadFinishedListener != null)
62 | onLoadFinishedListener.onLoadSuccessed();
63 | }
64 | }
65 |
66 | @Override
67 | public void onErrorResponse(VolleyError volleyError) {
68 | imageView.setImageResource(R.color.default_color);
69 | if (onLoadFinishedListener != null)
70 | onLoadFinishedListener.onLoadSuccessed();
71 | }
72 | };
73 | loader.get(url, listener, width, height);
74 | }
75 | }
76 |
77 | /**
78 | * 加载成功和失败的监听接口
79 | */
80 | public interface OnLoadFinishedListener {
81 | void onLoadSuccessed();
82 |
83 | void onLoadFailed();
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Utils/VolleyUtils/SMemoryLruCache.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Utils.VolleyUtils;
2 |
3 | import android.graphics.Bitmap;
4 | import android.util.Log;
5 | import android.util.LruCache;
6 |
7 | import com.android.volley.toolbox.ImageLoader;
8 | import com.flying.xiaopo.poishuhui.BuildConfig;
9 |
10 | /**
11 | * 单例的内存缓存类
12 | * Created by xiaopo on 2015/9/5.
13 | */
14 | public class SMemoryLruCache extends LruCache implements ImageLoader.ImageCache {
15 | private final String TAG = this.getClass().getSimpleName();
16 | private static SMemoryLruCache mInstance;
17 |
18 | /**
19 | * @param maxSize for caches that do not override {@link #sizeOf}, this is
20 | * the maximum number of entries in the cache. For all other caches,
21 | * this is the maximum sum of the sizes of the entries in this cache.
22 | */
23 | private SMemoryLruCache(int maxSize) {
24 | super(maxSize);
25 | }
26 |
27 | public static synchronized SMemoryLruCache getInstance() {
28 | if (mInstance == null) {
29 | int maxMem = (int) Runtime.getRuntime().maxMemory();
30 | mInstance = new SMemoryLruCache(maxMem / 8);
31 | }
32 | return mInstance;
33 | }
34 |
35 | @Override
36 | protected int sizeOf(String key, Bitmap value) {
37 | return value.getRowBytes() * value.getHeight();
38 | }
39 |
40 | @Override
41 | public Bitmap getBitmap(String s) {
42 | if (BuildConfig.DEBUG) {
43 | Log.d(TAG, "Retrieved comic_item from Mem Cache");
44 | }
45 | return this.get(s);
46 | }
47 |
48 | @Override
49 | public void putBitmap(String s, Bitmap bitmap) {
50 | if (BuildConfig.DEBUG) {
51 | Log.d(TAG, "Added comic_item to Mem Cache");
52 | }
53 | this.put(s, bitmap);
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Utils/VolleyUtils/SVolleyHelper.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Utils.VolleyUtils;
2 |
3 | import android.content.Context;
4 |
5 | import com.android.volley.RequestQueue;
6 | import com.android.volley.toolbox.ImageLoader;
7 | import com.android.volley.toolbox.Volley;
8 |
9 | /**
10 | * 单例的RequestQueue类
11 | * Created by xiaopo on 2015/9/5.
12 | */
13 | public class SVolleyHelper {
14 | private static Context mCtx;
15 | private ImageLoader mLoadr;
16 | private SMemoryLruCache memoryLruCache;
17 | private RequestQueue mQueue;
18 | private static SVolleyHelper mInstance;
19 |
20 | private SVolleyHelper(Context context) {
21 | mCtx = context;
22 |
23 | mQueue=getRequestQueue();
24 |
25 | memoryLruCache = SMemoryLruCache.getInstance();
26 |
27 | mLoadr = new ImageLoader(mQueue,memoryLruCache);
28 | }
29 |
30 | public static synchronized SVolleyHelper getInstance(Context context){
31 | if (mInstance==null){
32 | mInstance=new SVolleyHelper(context);
33 | }
34 | return mInstance;
35 | }
36 |
37 | public RequestQueue getRequestQueue() {
38 | if (mQueue==null){
39 | mQueue = Volley.newRequestQueue(mCtx.getApplicationContext());
40 | }
41 | return mQueue;
42 | }
43 |
44 | public ImageLoader getLoader(){
45 | return mLoadr;
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Views/Activities/ComicDetailActivity.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Views.Activities;
2 |
3 | import android.content.Intent;
4 | import android.graphics.Color;
5 | import android.os.AsyncTask;
6 | import android.os.Bundle;
7 | import android.support.v7.app.AppCompatActivity;
8 | import android.support.v7.widget.GridLayoutManager;
9 | import android.support.v7.widget.RecyclerView;
10 | import android.support.v7.widget.Toolbar;
11 | import android.view.View;
12 | import android.widget.ImageView;
13 | import android.widget.TextView;
14 |
15 | import com.flying.xiaopo.poishuhui.Adapters.Impl.OnCellClickListener;
16 | import com.flying.xiaopo.poishuhui.Adapters.PageAdapter;
17 | import com.flying.xiaopo.poishuhui.Beans.PageBean;
18 | import com.flying.xiaopo.poishuhui.R;
19 | import com.flying.xiaopo.poishuhui.Utils.HtmlUtil;
20 | import com.flying.xiaopo.poishuhui.Utils.VolleyUtils.BitmapHelper;
21 | import com.flying.xiaopo.poishuhui.Views.Fragments.ComicBookListFragment;
22 | import com.flying.xiaopo.poishuhui.Views.Fragments.ComicListFragment;
23 |
24 | import java.util.List;
25 |
26 | import butterknife.ButterKnife;
27 | import butterknife.InjectView;
28 |
29 | /**
30 | * Created by lenovo on 2015/9/6.
31 | */
32 | public class ComicDetailActivity extends AppCompatActivity implements OnCellClickListener {
33 | @InjectView(R.id.iv_detail)
34 | ImageView iv_detail;
35 | @InjectView(R.id.tv_detail_title)
36 | TextView tv_detail_title;
37 | @InjectView(R.id.tv_detail_time)
38 | TextView tv_detail_time;
39 | @InjectView(R.id.tv_detail_intro)
40 | TextView tv_detail_intro;
41 | @InjectView(R.id.rv_detail)
42 | RecyclerView rv_detail;
43 | @InjectView(R.id.toolbar_detail)
44 | Toolbar mToolbar;
45 |
46 | private GridLayoutManager manager;
47 | private PageAdapter adapter;
48 | private String taskURL;
49 | private String title;
50 | private String imgURL;
51 |
52 | @Override
53 | protected void onCreate(Bundle savedInstanceState) {
54 | super.onCreate(savedInstanceState);
55 | setContentView(R.layout.activity_comic_detail);
56 | ButterKnife.inject(this);
57 |
58 | Bundle bundle = getIntent().getExtras();
59 | if (bundle != null) {
60 | taskURL = bundle.getString(ComicBookListFragment.INTENT_KEY_LIMK);
61 | title = bundle.getString(ComicBookListFragment.INTENT_KEY_TITLE);
62 | imgURL = bundle.getString(ComicBookListFragment.INTENT_KEY_URL);
63 | }
64 |
65 | init();
66 | startLoad(taskURL);
67 | }
68 |
69 | private void startLoad(String taskURL) {
70 | PageTask task = new PageTask() {
71 | @Override
72 | protected void onPostExecute(List pageBeans) {
73 | super.onPostExecute(pageBeans);
74 | adapter.obtainData(pageBeans);
75 | adapter.notifyDataSetChanged();
76 | adapter.setOnCellClickListener(ComicDetailActivity.this);
77 | }
78 | };
79 | task.execute(taskURL);
80 | }
81 |
82 | private void init() {
83 | manager = new GridLayoutManager(this, 4);
84 | adapter = new PageAdapter(this);
85 |
86 | rv_detail.setLayoutManager(manager);
87 | rv_detail.setAdapter(adapter);
88 |
89 | mToolbar.setTitle(title);
90 | mToolbar.setTitleTextColor(Color.WHITE);
91 | mToolbar.setNavigationIcon(R.drawable.ic_arrow_left_white_24dp);
92 | mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
93 | @Override
94 | public void onClick(View v) {
95 | onBackPressed();
96 | }
97 | });
98 |
99 | tv_detail_title.setText(title);
100 | BitmapHelper.load2ImageView(getApplicationContext(), iv_detail, imgURL, 200, 200, null);
101 | }
102 |
103 | @Override
104 | public void onCellClick(View view, int position) {
105 | Intent intent = new Intent();
106 | intent.putExtra(ComicListFragment.INTENT_KEY_LINK, adapter.getDatas().get(position).getLink());
107 | intent.setClass(this, ComicActivity.class);
108 | startActivity(intent);
109 | }
110 |
111 | private class PageTask extends AsyncTask> {
112 | @Override
113 | protected List doInBackground(String... params) {
114 | return HtmlUtil.obtainPageList(params[0]);
115 | }
116 | }
117 |
118 | }
119 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Views/Activities/NewsDetailActivity.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Views.Activities;
2 |
3 | import android.os.AsyncTask;
4 | import android.os.Bundle;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.support.v7.widget.Toolbar;
7 | import android.webkit.WebView;
8 | import android.widget.Toast;
9 |
10 | import com.flying.xiaopo.poishuhui.R;
11 | import com.flying.xiaopo.poishuhui.Utils.HtmlUtil;
12 |
13 | import butterknife.ButterKnife;
14 | import butterknife.InjectView;
15 |
16 | /**
17 | * Created by lenovo on 2015/8/23.
18 | */
19 | public class NewsDetailActivity extends AppCompatActivity {
20 | public static String INTENT_KEY_URL="url";
21 | public static String INTENT_KEY_TITLE="title";
22 | public static String INTENT_KEY_TIME="time";
23 | @InjectView(R.id.toolbar_text)
24 | Toolbar toolbar;
25 | @InjectView(R.id.webview)
26 | WebView mWebView;
27 |
28 | String aimURL;
29 |
30 | @Override
31 | protected void onCreate(Bundle savedInstanceState) {
32 | super.onCreate(savedInstanceState);
33 | setContentView(R.layout.activity_news_detail);
34 | ButterKnife.inject(this);
35 | toolbar.setTitle(getIntent().getStringExtra(INTENT_KEY_TITLE));
36 | aimURL = getIntent().getStringExtra(INTENT_KEY_URL);
37 | Toast.makeText(this, aimURL, Toast.LENGTH_SHORT).show();
38 | Task task = new Task(){
39 | @Override
40 | protected void onPostExecute(String s) {
41 | super.onPostExecute(s);
42 | mWebView.loadDataWithBaseURL(null,s,"text/html;charset=utf-8","utf-8",null);
43 | }
44 | };
45 | task.execute(aimURL);
46 |
47 | }
48 |
49 | private class Task extends AsyncTask {
50 |
51 | @Override
52 | protected String doInBackground(String... params) {
53 | return HtmlUtil.obtainNewsContent(params[0]);
54 | }
55 |
56 | @Override
57 | protected void onPostExecute(String s) {
58 | super.onPostExecute(s);
59 |
60 | }
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Views/CustomViews/PageBar.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Views.CustomViews;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.widget.Button;
8 | import android.widget.FrameLayout;
9 |
10 | import com.flying.xiaopo.poishuhui.R;
11 |
12 | import butterknife.ButterKnife;
13 | import butterknife.InjectView;
14 |
15 | /**
16 | * 页面选择器
17 | * Created by lenovo on 2015/8/19.
18 | */
19 | public class PageBar extends FrameLayout implements View.OnClickListener {
20 | View container;
21 | String prefixURL;
22 |
23 |
24 | @InjectView(R.id.btn_page_1)
25 | Button btn_page_1;
26 | @InjectView(R.id.btn_page_2)
27 | Button btn_page_2;
28 | @InjectView(R.id.btn_page_3)
29 | Button btn_page_3;
30 | @InjectView(R.id.btn_page_4)
31 | Button btn_page_4;
32 | @InjectView(R.id.btn_page_5)
33 | Button btn_page_5;
34 | @InjectView(R.id.btn_page_6)
35 | Button btn_page_6;
36 |
37 | onPageItemClickListener onPageItemClickListener;
38 |
39 |
40 | public PageBar(Context context) {
41 | super(context);
42 | init();
43 | initListener();
44 | }
45 |
46 | public PageBar(Context context, AttributeSet attrs, int defStyleAttr) {
47 | super(context, attrs, defStyleAttr);
48 | init();
49 | initListener();
50 | }
51 |
52 | public PageBar(Context context, AttributeSet attrs) {
53 | super(context, attrs);
54 | init();
55 | initListener();
56 | }
57 |
58 | private void initListener() {
59 | btn_page_1.setOnClickListener(this);
60 | btn_page_2.setOnClickListener(this);
61 | btn_page_3.setOnClickListener(this);
62 | btn_page_4.setOnClickListener(this);
63 | btn_page_5.setOnClickListener(this);
64 | btn_page_6.setOnClickListener(this);
65 | }
66 |
67 | private void init() {
68 | container = LayoutInflater.from(getContext()).inflate(R.layout.pagebar, this, false);
69 | ButterKnife.inject(this,container);
70 | addView(container, 0);
71 | btn_page_1.setTag(1);
72 | btn_page_2.setTag(2);
73 | btn_page_3.setTag(3);
74 | btn_page_4.setTag(4);
75 | btn_page_5.setTag(5);
76 | btn_page_6.setTag(0);
77 | }
78 |
79 | public void setPrefixURL(String prefixURL) {
80 | this.prefixURL = prefixURL;
81 | }
82 | public String getPrefixURL() {
83 | return prefixURL;
84 | }
85 | public void setOnPageItemClickListener(PageBar.onPageItemClickListener onPageItemClickListener) {
86 | this.onPageItemClickListener = onPageItemClickListener;
87 | }
88 |
89 | @Override
90 | public void onClick(View v) {
91 | int tag = (int) v.getTag();
92 | switch (tag) {
93 | case 0:
94 | break;
95 | case 1:
96 | case 2:
97 | case 3:
98 | case 4:
99 | initializeTag();
100 | if (onPageItemClickListener != null) onPageItemClickListener.onPageItemClick(v);
101 | break;
102 | default:
103 | changeTag(tag);
104 | if (onPageItemClickListener != null) onPageItemClickListener.onPageItemClick(v);
105 | break;
106 | }
107 | }
108 |
109 | private void changeTag(int tag) {
110 | btn_page_2.setTag(0);
111 | btn_page_2.setText("...");
112 | btn_page_4.setTag(tag);
113 | btn_page_4.setText(tag + "");
114 | btn_page_3.setTag(tag - 1);
115 | btn_page_3.setText((tag - 1) + "");
116 | btn_page_5.setTag(tag + 1);
117 | btn_page_5.setText((tag + 1) + "");
118 | }
119 |
120 | private void initializeTag() {
121 | btn_page_2.setTag(2);
122 | btn_page_2.setText("2");
123 | btn_page_4.setTag(4);
124 | btn_page_4.setText("4");
125 | btn_page_3.setTag(3);
126 | btn_page_3.setText("3");
127 | btn_page_5.setTag(5);
128 | btn_page_5.setText("5");
129 | }
130 |
131 |
132 |
133 | public interface onPageItemClickListener {
134 | void onPageItemClick(View v);
135 | }
136 | }
137 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Views/Fragments/ComicBookListFragment.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Views.Fragments;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.support.annotation.Nullable;
7 | import android.support.v4.app.Fragment;
8 | import android.support.v4.widget.SwipeRefreshLayout;
9 | import android.support.v7.widget.GridLayoutManager;
10 | import android.support.v7.widget.LinearLayoutManager;
11 | import android.support.v7.widget.RecyclerView;
12 | import android.view.LayoutInflater;
13 | import android.view.View;
14 | import android.view.ViewGroup;
15 |
16 | import com.flying.xiaopo.poishuhui.Adapters.GridAdapter;
17 | import com.flying.xiaopo.poishuhui.Adapters.Impl.OnCellClickListener;
18 | import com.flying.xiaopo.poishuhui.Beans.ItemBean;
19 | import com.flying.xiaopo.poishuhui.R;
20 | import com.flying.xiaopo.poishuhui.Utils.HtmlTask;
21 | import com.flying.xiaopo.poishuhui.Utils.Utils;
22 | import com.flying.xiaopo.poishuhui.Views.Activities.ComicDetailActivity;
23 |
24 | import java.util.ArrayList;
25 | import java.util.List;
26 |
27 | import butterknife.ButterKnife;
28 | import butterknife.InjectView;
29 |
30 | /**
31 | * 漫画图书列表Fragment
32 | * Created by lenovo on 2015/8/20.
33 | */
34 | public class ComicBookListFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener, OnCellClickListener {
35 | public static final String INTENT_KEY_URL = "url";
36 | public static final String INTENT_KEY_TITLE = "title";
37 | public static final String INTENT_KEY_LIMK = "link";
38 |
39 | @InjectView(R.id.rv_third_list)
40 | RecyclerView rv_third_list;
41 |
42 | @InjectView(R.id.refresh_booklist)
43 | SwipeRefreshLayout refresh_booklist;
44 |
45 | GridLayoutManager manager;
46 |
47 | GridAdapter adapter;
48 |
49 | String taskURL = null;
50 |
51 | Context context;
52 |
53 | List list_data;
54 |
55 | @Override
56 | public void onCreate(@Nullable Bundle savedInstanceState) {
57 | super.onCreate(savedInstanceState);
58 | context = getActivity();
59 | adapter = new GridAdapter(context) {
60 | @Override
61 | public void onBindViewHolder(CellViewHolder holder, int position) {
62 | super.onBindViewHolder(holder, position);
63 | holder.getTv_title().setHeight(Utils.dp2px(30));
64 | holder.getTv_title().setTextSize(20.0f);
65 | }
66 | };
67 | list_data = new ArrayList<>();
68 | }
69 |
70 | @Nullable
71 | @Override
72 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
73 | View rootView = inflater.inflate(R.layout.fragment_comic_booklist, container, false);
74 | ButterKnife.inject(this, rootView);
75 | manager = new GridLayoutManager(context, 2, LinearLayoutManager.VERTICAL, false);
76 |
77 | rv_third_list.setLayoutManager(manager);
78 | rv_third_list.setAdapter(adapter);
79 |
80 | refresh_booklist.setOnRefreshListener(this);
81 | refresh_booklist.setRefreshing(true);
82 | onRefresh();
83 |
84 | return rootView;
85 | }
86 |
87 | public String getTaskURL() {
88 | return taskURL;
89 | }
90 |
91 | public void setTaskURL(String taskURL) {
92 | this.taskURL = taskURL;
93 | }
94 |
95 | protected void startLoad(String URL) {
96 | HtmlTask task = new HtmlTask() {
97 | @Override
98 | protected void onPostExecute(List baseBeans) {
99 | super.onPostExecute(baseBeans);
100 | adapter.obtainData(baseBeans);
101 | adapter.notifyDataSetChanged();
102 | adapter.setOnCellClickListener(ComicBookListFragment.this);
103 | refresh_booklist.setRefreshing(false);
104 | }
105 | };
106 | task.execute(URL, HtmlTask.TASK_LIST);
107 | }
108 |
109 |
110 | @Override
111 | public void onRefresh() {
112 | if (taskURL != null) startLoad(taskURL);
113 | }
114 |
115 | //TODO
116 | @Override
117 | public void onCellClick(View view, int position) {
118 | Intent intent = new Intent();
119 | Bundle bundle = new Bundle();
120 |
121 | ItemBean bean = adapter.getData().get(position);
122 | bundle.putString(INTENT_KEY_TITLE, bean.getTitle());
123 | bundle.putString(INTENT_KEY_URL, bean.getImageURL());
124 | bundle.putString(INTENT_KEY_LIMK, bean.getLink());
125 |
126 | intent.putExtras(bundle);
127 | intent.setClass(context, ComicDetailActivity.class);
128 | startActivity(intent);
129 | getActivity().overridePendingTransition(0, 0);
130 | }
131 | }
132 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Views/Fragments/ComicListFragment.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Views.Fragments;
2 |
3 | import android.content.Context;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 | import android.support.annotation.Nullable;
7 | import android.support.v4.app.Fragment;
8 | import android.support.v4.widget.SwipeRefreshLayout;
9 | import android.support.v7.widget.RecyclerView;
10 | import android.support.v7.widget.StaggeredGridLayoutManager;
11 | import android.view.LayoutInflater;
12 | import android.view.View;
13 | import android.view.ViewGroup;
14 |
15 | import com.flying.xiaopo.poishuhui.Adapters.GridAdapter;
16 | import com.flying.xiaopo.poishuhui.Adapters.Impl.OnCellClickListener;
17 | import com.flying.xiaopo.poishuhui.Adapters.StaggeredAdapter;
18 | import com.flying.xiaopo.poishuhui.Beans.ItemBean;
19 | import com.flying.xiaopo.poishuhui.R;
20 | import com.flying.xiaopo.poishuhui.Utils.HtmlTask;
21 | import com.flying.xiaopo.poishuhui.Utils.HtmlUtil;
22 | import com.flying.xiaopo.poishuhui.Views.Activities.ComicActivity;
23 | import com.flying.xiaopo.poishuhui.Views.CustomViews.PageBar;
24 |
25 | import java.util.ArrayList;
26 | import java.util.List;
27 |
28 | import butterknife.ButterKnife;
29 | import butterknife.InjectView;
30 |
31 | /**
32 | * 在线漫画列表Fragment
33 | * Created by lenovo on 2015/8/19.
34 | */
35 | public class ComicListFragment extends Fragment implements PageBar.onPageItemClickListener, SwipeRefreshLayout.OnRefreshListener, OnCellClickListener {
36 | public static final String INTENT_KEY_LINK = "link";
37 |
38 | @InjectView(R.id.rv_second_list)
39 | RecyclerView rv_second_list;
40 |
41 | @InjectView(R.id.pagebar)
42 | PageBar pageBar;
43 |
44 | @InjectView(R.id.refresh_comic_list)
45 | SwipeRefreshLayout refresh_comic_list;
46 |
47 | StaggeredGridLayoutManager manger;
48 |
49 | GridAdapter adapter;
50 |
51 | Context context;
52 |
53 | List list_data;
54 |
55 | private int currentPage = 1;
56 |
57 | @Override
58 | public void onCreate(Bundle savedInstanceState) {
59 | super.onCreate(savedInstanceState);
60 | init();
61 | }
62 |
63 | private void init() {
64 | context = getActivity();
65 | manger = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
66 | adapter = new StaggeredAdapter(context);
67 | list_data = new ArrayList<>();
68 | }
69 |
70 | @Nullable
71 | @Override
72 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
73 | View rootView = inflater.inflate(R.layout.fragment_comic_list, container, false);
74 | ButterKnife.inject(this, rootView);
75 | manger = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
76 | rv_second_list.setLayoutManager(manger);
77 | rv_second_list.setAdapter(adapter);
78 | pageBar.setPrefixURL(HtmlUtil.URL_COMIC_PREFIX);
79 | pageBar.setOnPageItemClickListener(this);
80 |
81 | refresh_comic_list.setOnRefreshListener(this);
82 | refresh_comic_list.setRefreshing(true);
83 |
84 | onRefresh();
85 |
86 | return rootView;
87 | }
88 |
89 | private void startLoad(String URL) {
90 | HtmlTask task = new HtmlTask() {
91 | @Override
92 | protected void onPostExecute(List baseBeans) {
93 | super.onPostExecute(baseBeans);
94 | adapter.obtainData(baseBeans);
95 | adapter.notifyDataSetChanged();
96 | adapter.setOnCellClickListener(ComicListFragment.this);
97 | refresh_comic_list.setRefreshing(false);
98 | //rv_second_list.setAdapter(adapter);
99 | }
100 | };
101 | task.execute(URL, HtmlTask.TASK_ITEM);
102 | }
103 |
104 | @Override
105 | public void onPageItemClick(View v) {
106 | int clickPage = (int) v.getTag();
107 | if (currentPage == clickPage) return;
108 | startLoad(pageBar.getPrefixURL() + clickPage);
109 | currentPage = clickPage;
110 | }
111 |
112 | @Override
113 | public void onRefresh() {
114 | startLoad(pageBar.getPrefixURL() + currentPage);
115 | }
116 |
117 | @Override
118 | public void onCellClick(View view, int position) {
119 | Intent intent = new Intent();
120 | intent.putExtra(INTENT_KEY_LINK, adapter.getData().get(position).getLink());
121 | intent.setClass(context, ComicActivity.class);
122 | startActivity(intent);
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/poishuhui/src/main/java/com/flying/xiaopo/poishuhui/Views/Fragments/ComicNewsFragment.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.poishuhui.Views.Fragments;
2 |
3 | import android.content.Context;
4 | import android.os.AsyncTask;
5 | import android.os.Bundle;
6 | import android.support.annotation.Nullable;
7 | import android.support.v4.app.Fragment;
8 | import android.support.v4.widget.SwipeRefreshLayout;
9 | import android.support.v7.widget.LinearLayoutManager;
10 | import android.support.v7.widget.RecyclerView;
11 | import android.view.LayoutInflater;
12 | import android.view.View;
13 | import android.view.ViewGroup;
14 |
15 | import com.flying.xiaopo.poishuhui.Adapters.ContainerLinearAdapter;
16 | import com.flying.xiaopo.poishuhui.Beans.ContainerBean;
17 | import com.flying.xiaopo.poishuhui.R;
18 | import com.flying.xiaopo.poishuhui.Utils.HtmlUtil;
19 |
20 | import java.util.ArrayList;
21 | import java.util.List;
22 |
23 | import butterknife.ButterKnife;
24 | import butterknife.InjectView;
25 |
26 | /**
27 | * 漫画新闻类
28 | * Created by lenovo on 2015/9/3.
29 | */
30 | public class ComicNewsFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
31 | Context context;
32 | @InjectView(R.id.rv_comic_news)
33 | RecyclerView rv_comic_news;
34 | @InjectView(R.id.refresh_comic_news)
35 | SwipeRefreshLayout refresh_comic_news;
36 |
37 | LinearLayoutManager manager;
38 |
39 | ContainerLinearAdapter adapter;
40 |
41 | List list_data;
42 |
43 | @Override
44 | public void onCreate(@Nullable Bundle savedInstanceState) {
45 | super.onCreate(savedInstanceState);
46 | init();
47 | }
48 |
49 | private void init() {
50 | context = getActivity();
51 | adapter = new ContainerLinearAdapter(context);
52 | list_data = new ArrayList<>();
53 | }
54 |
55 | @Nullable
56 | @Override
57 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
58 | View rootView = inflater.inflate(R.layout.fragment_comic_news, container, false);
59 | ButterKnife.inject(this, rootView);
60 | manager = new LinearLayoutManager(context);
61 | rv_comic_news.setLayoutManager(manager);
62 | rv_comic_news.setAdapter(adapter);
63 | refresh_comic_news.setOnRefreshListener(this);
64 | refresh_comic_news.setRefreshing(true);
65 |
66 | onRefresh();
67 |
68 | return rootView;
69 | }
70 |
71 | private void startLoad(String urlNews) {
72 | NewsTask task = new NewsTask() {
73 | @Override
74 | protected void onPostExecute(List containerBeans) {
75 | super.onPostExecute(containerBeans);
76 | adapter.obtainData(containerBeans);
77 | adapter.notifyDataSetChanged();
78 | refresh_comic_news.setRefreshing(false);
79 | }
80 | };
81 | task.execute(urlNews);
82 | }
83 |
84 | @Override
85 | public void onRefresh() {
86 | startLoad(HtmlUtil.URL_NEWS);
87 | }
88 |
89 |
90 | private class NewsTask extends AsyncTask> {
91 | @Override
92 | protected List doInBackground(String... params) {
93 | return HtmlUtil.obtainContainer(params[0]);
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_black_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_grey600_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-hdpi/ic_arrow_left_white_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_black_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_grey600_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-mdpi/ic_arrow_left_white_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-v21/arrow_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_black_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_grey600_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xhdpi/ic_arrow_left_white_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_black_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_grey600_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_arrow_left_white_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxhdpi/ic_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxhdpi/ic_logo.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_black_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_grey600_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_18dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_18dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_24dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_36dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_48dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/drawable-xxxhdpi/ic_arrow_left_white_48dp.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/drawable/arrow_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/activity_comic.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/activity_comic_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
21 |
22 |
27 |
28 |
35 |
36 |
42 |
43 |
50 |
51 |
58 |
59 |
66 |
67 |
68 |
69 |
70 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/activity_main.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
16 |
17 |
23 |
24 |
30 |
31 |
39 |
40 |
41 |
47 |
48 |
49 |
50 |
58 |
59 |
60 |
67 |
68 |
76 |
77 |
81 |
82 |
89 |
90 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
112 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/activity_news_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
17 |
18 |
24 |
25 |
26 |
27 |
34 |
35 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/child_news_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
19 |
20 |
29 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/comic_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
16 |
23 |
24 |
33 |
34 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/comic_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
17 |
18 |
19 |
27 |
28 |
34 |
35 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/fragment_comic_booklist.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/fragment_comic_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
18 |
19 |
20 |
21 |
22 |
27 |
28 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/fragment_comic_news.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
17 |
18 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/news_container_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
17 |
18 |
21 |
22 |
30 |
31 |
40 |
41 |
42 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/page_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
19 |
20 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout-v21/pagebar.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
21 |
22 |
31 |
32 |
41 |
42 |
51 |
52 |
61 |
62 |
71 |
75 |
76 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/activity_comic.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/activity_comic_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
21 |
22 |
27 |
28 |
35 |
36 |
42 |
43 |
50 |
51 |
58 |
59 |
66 |
67 |
68 |
69 |
70 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
15 |
16 |
22 |
23 |
29 |
30 |
38 |
39 |
40 |
46 |
47 |
48 |
49 |
57 |
58 |
59 |
66 |
67 |
75 |
76 |
80 |
81 |
88 |
89 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
110 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/activity_news_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
17 |
18 |
24 |
25 |
26 |
27 |
34 |
35 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/child_news_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
19 |
20 |
29 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/comic_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
21 |
22 |
31 |
32 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/comic_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
16 |
17 |
18 |
26 |
27 |
34 |
35 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/fragment_comic_booklist.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/fragment_comic_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
18 |
19 |
20 |
21 |
22 |
27 |
28 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/fragment_comic_news.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
10 |
11 |
16 |
17 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/news_container_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
16 |
17 |
20 |
21 |
29 |
30 |
39 |
40 |
41 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/page_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
19 |
20 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/layout/pagebar.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
21 |
22 |
31 |
32 |
41 |
42 |
51 |
52 |
61 |
62 |
71 |
75 |
76 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/menu/menu_start.xml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/poishuhui/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/poishuhui/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 | #00bcd4
13 |
14 | #00bcd4
15 | #fff
16 |
17 | #fff
18 |
19 | #7fff
20 | #757575
21 |
22 | #b2c6ce
23 |
24 | #7fff
25 | #9e9e9e
26 |
27 | @android:color/transparent
28 |
29 | #fff
30 |
31 | #eeee
32 |
33 | #fff
34 | #fff
35 |
36 | #9e9e9e
37 |
38 | #fff
39 | #1000
40 |
41 | #50000000
42 |
43 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 | 12sp
7 |
8 | 8dp
9 | 4dp
10 |
11 | 4dp
12 | 200dp
13 |
14 | 30dp
15 | 15dp
16 | 10dp
17 |
18 | 44dp
19 | 14sp
20 |
21 | 50dp
22 |
23 | 48dp
24 | 56dp
25 |
26 | 50dp
27 | 24sp
28 | 16sp
29 | 12sp
30 |
31 | 50dp
32 | 24sp
33 | 13sp
34 | 16sp
35 | 48dp
36 |
37 | 4dp
38 |
39 |
40 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | PoiShuHui
3 |
4 | Hello world!
5 | Settings
6 | Search
7 |
8 | 首页
9 | 在线漫画
10 | 漫画列表
11 | 动漫资讯
12 |
13 |
14 |
15 | 上一页
16 | 下一页
17 |
18 | SEARCH
19 |
20 |
--------------------------------------------------------------------------------
/poishuhui/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
16 |
17 | #00bcd4
18 |
19 | #00bcd4
20 | #fff
21 |
22 | #fff
23 |
24 | #7fff
25 | #757575
26 |
27 | #b2c6ce
28 |
29 | #7fff
30 | #9e9e9e
31 |
32 | @android:color/transparent
33 |
34 | #fff
35 |
36 | #eeee
37 |
38 | #fff
39 | #fff
40 |
41 | #9e9e9e
42 |
43 | #fff
44 | #1000
45 |
46 | #50000000
47 |
48 |
--------------------------------------------------------------------------------
/sceenshots/Image1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/sceenshots/Image1.png
--------------------------------------------------------------------------------
/sceenshots/Image2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/sceenshots/Image2.png
--------------------------------------------------------------------------------
/sceenshots/Image3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/sceenshots/Image3.png
--------------------------------------------------------------------------------
/sceenshots/Image4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/sceenshots/Image4.png
--------------------------------------------------------------------------------
/sceenshots/Image5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/sceenshots/Image5.png
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':volleytest', ':poishuhui'
2 |
--------------------------------------------------------------------------------
/shader/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/shader/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 21
5 | buildToolsVersion "22.0.0"
6 |
7 | defaultConfig {
8 | applicationId "com.flying.xiaopo.shader"
9 | minSdkVersion 19
10 | targetSdkVersion 21
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | compile 'com.android.support:appcompat-v7:21.0.3'
25 | compile 'com.android.support:cardview-v7:21.0.3'
26 | compile 'com.android.support:recyclerview-v7:21.0.3'
27 | compile files('libs/eventbus-2.4.0.jar')
28 | compile files('libs/butterknife-6.1.0.jar')
29 | }
30 |
--------------------------------------------------------------------------------
/shader/libs/butterknife-6.1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/libs/butterknife-6.1.0.jar
--------------------------------------------------------------------------------
/shader/libs/eventbus-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/libs/eventbus-2.4.0.jar
--------------------------------------------------------------------------------
/shader/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 E:\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 |
--------------------------------------------------------------------------------
/shader/src/androidTest/java/com/flying/xiaopo/shader/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/shader/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
12 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/Activity/NotificationStartedActivity.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader.Activity;
2 |
3 | import android.app.Activity;
4 | import android.app.PendingIntent;
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 | import android.widget.Button;
8 |
9 | import com.flying.xiaopo.shader.R;
10 |
11 | import butterknife.ButterKnife;
12 | import butterknife.InjectView;
13 | import butterknife.OnClick;
14 |
15 | /**
16 | * Created by lenovo on 2015/7/19.
17 | */
18 | public class NotificationStartedActivity extends Activity {
19 | @InjectView(R.id.btn_cancel_tip)
20 | Button btn_cancel_tip;
21 | @Override
22 | protected void onCreate(Bundle savedInstanceState) {
23 | super.onCreate(savedInstanceState);
24 | setContentView(R.layout.activity_notification_started);
25 | ButterKnife.inject(this);
26 | }
27 | @OnClick(R.id.btn_cancel_tip)
28 | void cancelTip(){
29 | Intent intent = new Intent(this,MainActivity.class);
30 | startActivity(intent);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/Bean/TipBean.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader.Bean;
2 |
3 | /**
4 | * Created by lenovo on 2015/6/13.
5 | */
6 | public class TipBean {
7 | private int id;
8 | private String title;
9 | private String date;
10 | private String time;
11 |
12 | public TipBean(int id, String title, String date, String time) {
13 | this.date = date;
14 | this.id = id;
15 | this.time = time;
16 | this.title = title;
17 | }
18 |
19 | public TipBean(String title, String date, String time) {
20 | this.date = date;
21 | this.time = time;
22 | this.title = title;
23 | }
24 |
25 | public String getDate() {
26 | return date;
27 | }
28 |
29 | public int getId() {
30 | return id;
31 | }
32 |
33 | public String getTime() {
34 | return time;
35 | }
36 |
37 | public String getTitle() {
38 | return title;
39 | }
40 |
41 | public void setDate(String date) {
42 | this.date = date;
43 | }
44 |
45 | public void setId(int id) {
46 | this.id = id;
47 | }
48 |
49 | public void setTime(String time) {
50 | this.time = time;
51 | }
52 |
53 | public void setTitle(String title) {
54 | this.title = title;
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/ClockDBHelper.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader;
2 |
3 | import android.content.ContentValues;
4 | import android.content.Context;
5 | import android.database.Cursor;
6 | import android.database.sqlite.SQLiteDatabase;
7 | import android.database.sqlite.SQLiteOpenHelper;
8 |
9 | import com.flying.xiaopo.shader.Bean.TipBean;
10 |
11 | import java.util.ArrayList;
12 | import java.util.List;
13 |
14 | /**
15 | * Created by lenovo on 2015/6/13.
16 | */
17 | public class ClockDBHelper extends SQLiteOpenHelper {
18 | public static String DB_NAME = "xiaopo";
19 | public static String DB_TABLE_NAME = "remind_table";
20 | public static String COL_ID = "id";
21 | public static String COL_TITLE = "title";
22 | public static String COL_DATE = "date";
23 | public static String COL_TIME = "time";
24 |
25 | public ClockDBHelper(Context context) {
26 | super(context, DB_NAME, null, 1);
27 | }
28 |
29 | public ClockDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
30 | super(context, name, factory, version);
31 | }
32 |
33 | @Override
34 | public void onCreate(SQLiteDatabase db) {
35 | String create_table_sql = "CREATE TABLE " + DB_TABLE_NAME + " (" +
36 | COL_ID + " INTEGER PRIMARY KEY," +
37 | COL_TITLE + " TEXT," +
38 | COL_DATE + " TEXT," +
39 | COL_TIME + " INTEGER" + ")";
40 | db.execSQL(create_table_sql);
41 | }
42 |
43 | @Override
44 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
45 | if (oldVersion >= newVersion) {
46 | return;
47 | }
48 | db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME);
49 | onCreate(db);
50 | }
51 |
52 | public int addRemind(TipBean bean){
53 | SQLiteDatabase dbWriter = this.getWritableDatabase();
54 | ContentValues cv = new ContentValues();
55 | cv.put(COL_TITLE,bean.getTitle());
56 | cv.put(COL_DATE,bean.getDate());
57 | cv.put(COL_TIME, bean.getTime());
58 | long ID = dbWriter.insert(DB_TABLE_NAME,null,cv);
59 | return (int) ID;
60 | }
61 |
62 | public TipBean getRemind(int id) {
63 | SQLiteDatabase dbReader = this.getReadableDatabase();
64 | Cursor cursor = dbReader.query(DB_TABLE_NAME,
65 | new String[]{COL_ID, COL_TITLE, COL_DATE, COL_TIME},
66 | COL_ID + "=?",
67 | new String[]{String.valueOf(id)},
68 | null, null, null, null);
69 | if (cursor != null) {
70 | cursor.moveToFirst();
71 | }
72 | TipBean bean = new TipBean(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2), cursor.getString(3));
73 | cursor.close();
74 | return bean;
75 | }
76 |
77 | public List getAllBeans(){
78 | List beans = new ArrayList<>();
79 | SQLiteDatabase dbReader = this.getReadableDatabase();
80 | Cursor cursor= dbReader.query(DB_TABLE_NAME, new String[]{COL_ID, COL_TITLE, COL_DATE, COL_TIME}, null, null, null, null, null);
81 | if (cursor.moveToFirst()){
82 | do {
83 | TipBean bean = new TipBean(Integer.parseInt(cursor.getString(0)),cursor.getString(1),cursor.getString(2),cursor.getString(3));
84 | beans.add(bean);
85 | }while (cursor.moveToNext());
86 | }
87 |
88 | cursor.close();
89 | return beans;
90 | }
91 |
92 | public int updateReminder(TipBean bean,int id){
93 | SQLiteDatabase db = this.getWritableDatabase();
94 | ContentValues values = new ContentValues();
95 | values.put(COL_ID,id);
96 | values.put(COL_TITLE,bean.getTitle());
97 | values.put(COL_DATE,bean.getDate());
98 | values.put(COL_TIME, bean.getTime());
99 |
100 | return db.update(DB_TABLE_NAME,values,COL_ID+"=?",new String[]{String.valueOf(id)});
101 | }
102 |
103 | public void deleteReminder(int id){
104 | SQLiteDatabase db = this.getWritableDatabase();
105 | db.delete(DB_TABLE_NAME,"ID = ?",new String[]{String.valueOf(id)});
106 | db.close();
107 | }
108 |
109 | }
110 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/Reciver/TipsReciver.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader.Reciver;
2 |
3 | import android.app.AlarmManager;
4 | import android.app.NotificationManager;
5 | import android.app.PendingIntent;
6 | import android.content.Context;
7 | import android.content.Intent;
8 | import android.graphics.BitmapFactory;
9 | import android.graphics.Color;
10 | import android.media.RingtoneManager;
11 | import android.support.v4.app.NotificationCompat;
12 | import android.support.v4.content.WakefulBroadcastReceiver;
13 | import android.widget.Toast;
14 |
15 | import com.flying.xiaopo.shader.Activity.NotificationStartedActivity;
16 | import com.flying.xiaopo.shader.Bean.TipBean;
17 | import com.flying.xiaopo.shader.ClockDBHelper;
18 | import com.flying.xiaopo.shader.R;
19 |
20 | import java.util.Calendar;
21 |
22 | /**
23 | * Created by lenovo on 2015/6/13.
24 | */
25 | public class TipsReciver extends WakefulBroadcastReceiver {
26 | private AlarmManager mAlarmManager;
27 | private PendingIntent mPendingIntent;
28 | public static final String REMIND_ID = "id";
29 |
30 | @Override
31 | public void onReceive(Context context, Intent intent) {
32 | Toast.makeText(context, "Receive", Toast.LENGTH_SHORT).show();
33 | int recive_id = intent.getIntExtra(REMIND_ID, -1);
34 | String text;
35 | if (recive_id != -1) {
36 | TipBean bean = new ClockDBHelper(context).getRemind(intent.getIntExtra(REMIND_ID, -1));
37 | text = bean.getTitle();
38 | } else {
39 | text = "Sorry";
40 | }
41 | Intent mIntent =
42 | new Intent(context, NotificationStartedActivity.class);
43 | mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
44 |
45 | PendingIntent pendingIntent = PendingIntent.getActivity(context, recive_id, mIntent, PendingIntent.FLAG_UPDATE_CURRENT);
46 |
47 | NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
48 | .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
49 | .setSmallIcon(R.mipmap.ic_launcher)
50 | .setColor(Color.parseColor("#523532"))
51 | .setContentTitle(context.getResources().getString(R.string.app_name))
52 | .setContentText(text)
53 | .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
54 | .setContentIntent(pendingIntent)
55 | .setAutoCancel(true)
56 | .setOnlyAlertOnce(true);
57 |
58 | NotificationManager mManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
59 | mManager.notify(recive_id, mBuilder.build());
60 | }
61 |
62 | public void setAlarm(Context context, Calendar calendar, int ID) {
63 | mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
64 |
65 | Intent intent = new Intent(context, TipsReciver.class);
66 | intent.putExtra(REMIND_ID, ID);
67 | mPendingIntent = PendingIntent.getBroadcast(context, ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
68 |
69 | Calendar c = Calendar.getInstance();
70 | long currentTime = c.getTimeInMillis();
71 | // long diffTime = calendar.getTimeInMillis() - currentTime;
72 |
73 | mAlarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), mPendingIntent);
74 |
75 | }
76 |
77 | public void cancelAlarm(Context context, int ID) {
78 | mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
79 |
80 | Intent intent = new Intent(context, TipsReciver.class);
81 |
82 | mPendingIntent = PendingIntent.getBroadcast(context, ID, intent, 0);
83 | mAlarmManager.cancel(mPendingIntent);
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/Utils.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader;
2 |
3 | import android.content.res.Resources;
4 |
5 | /**
6 | * Created by lenovo on 2015/6/6.
7 | */
8 | public class Utils {
9 | public static int dpToPx(int dp){
10 | return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/View/CellTip.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader.View;
2 |
3 | import android.animation.ObjectAnimator;
4 | import android.annotation.TargetApi;
5 | import android.content.Context;
6 | import android.util.AttributeSet;
7 | import android.util.Log;
8 | import android.view.MotionEvent;
9 | import android.view.View;
10 | import android.view.animation.AccelerateInterpolator;
11 | import android.widget.ImageButton;
12 | import android.widget.LinearLayout;
13 | import android.widget.TextView;
14 |
15 | import com.flying.xiaopo.shader.Activity.AddTipActivity;
16 | import com.flying.xiaopo.shader.R;
17 |
18 | /**
19 | * Created by lenovo on 2015/7/26.
20 | */
21 | public class CellTip extends LinearLayout {
22 | public CellTip(Context context) {
23 | super(context);
24 | }
25 |
26 | public CellTip(Context context, AttributeSet attrs, int defStyleAttr) {
27 | super(context, attrs, defStyleAttr);
28 | }
29 |
30 | public CellTip(Context context, AttributeSet attrs) {
31 | super(context, attrs);
32 | changeState(STATE_HIDEING);
33 | }
34 |
35 | public OnTipClickListener onTipClickListener;
36 |
37 |
38 |
39 |
40 | private ImageButton tv_delete;
41 |
42 | public static final int STATE_SHOWING = 0;
43 | public static final int STATE_HIDEING = 1;
44 |
45 | private int state;
46 |
47 | @Override
48 | protected void onFinishInflate() {
49 | super.onFinishInflate();
50 | tv_delete = (ImageButton) findViewById(R.id.tv_delete);
51 |
52 | }
53 |
54 | public void setOnTipClickListener(OnTipClickListener onTipClickListener) {
55 | this.onTipClickListener = onTipClickListener;
56 | }
57 |
58 |
59 | float startX;
60 |
61 | @Override
62 | public boolean onTouchEvent(MotionEvent event) {
63 | float X = -1;
64 | switch (event.getAction()) {
65 | case MotionEvent.ACTION_DOWN:
66 | startX = event.getX();
67 | Log.d(AddTipActivity.TAG, "startX=" + startX);
68 | //tv_delete.animate().translationX(-100).setDuration(200).start();
69 | break;
70 | case MotionEvent.ACTION_MOVE:
71 | X = event.getX();
72 | Log.d(AddTipActivity.TAG, "X=" + X);
73 | break;
74 | case MotionEvent.ACTION_UP:
75 | Log.d(AddTipActivity.TAG, "Action_UP");
76 | if (state == STATE_HIDEING) {
77 | if (onTipClickListener != null)
78 | onTipClickListener.onTipClick(this, event);
79 | return false;
80 | } else {
81 | hideView();
82 | }
83 | break;
84 | case MotionEvent.ACTION_CANCEL:
85 | X = event.getX();
86 | Log.d(AddTipActivity.TAG, "startX-X" + Math.abs(X - startX));
87 | Log.d(AddTipActivity.TAG, "this.getWidth()/5=" + this.getWidth() / 5);
88 | if (startX - X >= this.getWidth() / 5) {
89 | showHideView();
90 | } else if (state == STATE_SHOWING) {
91 | hideView();
92 | }
93 | Log.d(AddTipActivity.TAG, "Action_CANCEL");
94 | break;
95 | }
96 | return true;
97 | }
98 |
99 | private void hideView() {
100 | changeState(STATE_HIDEING);
101 | ObjectAnimator animator = ObjectAnimator.ofFloat(
102 | tv_delete, "x", tv_delete.getX(), tv_delete.getX() + tv_delete.getWidth());
103 | animator.setDuration(300);
104 | animator.setInterpolator(new AccelerateInterpolator());
105 | animator.start();
106 | }
107 |
108 | private void showHideView() {
109 | changeState(STATE_SHOWING);
110 | ObjectAnimator animator = ObjectAnimator.ofFloat(
111 | tv_delete, "x", tv_delete.getX(), tv_delete.getX() - tv_delete.getWidth());
112 | animator.setDuration(300);
113 | animator.setInterpolator(new AccelerateInterpolator());
114 | animator.start();
115 | }
116 |
117 | public void changeState(int state) {
118 | this.state = state;
119 | }
120 |
121 | public interface OnTipClickListener {
122 | void onTipClick(View v, MotionEvent event);
123 | }
124 |
125 | }
126 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/View/CircleRevealLayout.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader.View;
2 |
3 | import android.animation.Animator;
4 | import android.animation.AnimatorListenerAdapter;
5 | import android.animation.ObjectAnimator;
6 | import android.annotation.TargetApi;
7 | import android.content.Context;
8 | import android.graphics.Canvas;
9 | import android.graphics.Color;
10 | import android.graphics.Paint;
11 | import android.os.Build;
12 | import android.util.AttributeSet;
13 | import android.util.Log;
14 | import android.view.View;
15 | import android.view.animation.AccelerateInterpolator;
16 | import android.view.animation.Interpolator;
17 | import android.widget.LinearLayout;
18 |
19 | /**
20 | * Created by xiaopo on 2015/6/6.
21 | */
22 | public class CircleRevealLayout extends LinearLayout {
23 | public CircleRevealLayout(Context context) {
24 | super(context);
25 | init();
26 | }
27 |
28 | public CircleRevealLayout(Context context, AttributeSet attrs, int defStyleAttr) {
29 | super(context, attrs, defStyleAttr);
30 | init();
31 |
32 | }
33 |
34 | public CircleRevealLayout(Context context, AttributeSet attrs) {
35 | super(context, attrs);
36 | init();
37 |
38 | Log.d("VIEW", getWidth()+"width"+getHeight()+"height");
39 | }
40 |
41 |
42 |
43 | public static final int STATE_NOT_START = 0;
44 | public static final int STATE_FILL_START = 1;
45 | public static final int STATE_END = 2;
46 | private int state = STATE_NOT_START;
47 |
48 |
49 | private Paint fillPaint;
50 |
51 | private int currentRadius;
52 | private int startLocationX;
53 | private int startLocationY;
54 | private static final Interpolator INTERPOLATOR = new AccelerateInterpolator();
55 | private ObjectAnimator revealAnimator;
56 |
57 | private void init() {
58 | fillPaint = new Paint();
59 | fillPaint.setStyle(Paint.Style.FILL);
60 | fillPaint.setColor(Color.WHITE);
61 | invalidate();
62 | }
63 |
64 | public void startAnimateFromLocation(int[] location) {
65 | changeState(STATE_FILL_START);
66 | startLocationX = location[0];
67 | startLocationY = location[1];
68 | revealAnimator = ObjectAnimator.ofInt(this, "currentRadius", 0, getWidth() + getHeight()).setDuration(400);
69 | Log.d("VIEW",getWidth()+getHeight()+"width+height");
70 | revealAnimator.setInterpolator(INTERPOLATOR);
71 | revealAnimator.addListener(new AnimatorListenerAdapter() {
72 | @Override
73 | public void onAnimationEnd(Animator animation) {
74 | super.onAnimationEnd(animation);
75 | changeState(STATE_END);
76 | }
77 | });
78 | revealAnimator.start();
79 | }
80 |
81 | public void setCurrentRadius(int currentRadius) {
82 | this.currentRadius = currentRadius;
83 | Log.d("VIEW",currentRadius+"");
84 | invalidate();
85 | }
86 |
87 | private void changeState(int state) {
88 | if (this.state == state) return;
89 | Log.d("VIEW",state+"state");
90 | this.state = state;
91 | }
92 |
93 | @Override
94 | protected void onDraw(Canvas canvas) {
95 | super.onDraw(canvas);
96 | Log.d("VIEW",getWidth()+"onDraw");
97 | if (state == STATE_END) {
98 | canvas.drawRect(0, 0, getWidth(), getHeight(), fillPaint);
99 | setVisibility(GONE);
100 | } else {
101 | canvas.drawCircle(startLocationX, startLocationY, currentRadius, fillPaint);
102 | }
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/shader/src/main/java/com/flying/xiaopo/shader/View/PullToRefresh.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.shader.View;
2 |
3 | import android.animation.ObjectAnimator;
4 | import android.content.Context;
5 | import android.support.v7.widget.RecyclerView;
6 | import android.util.AttributeSet;
7 | import android.util.Log;
8 | import android.view.LayoutInflater;
9 | import android.view.MotionEvent;
10 | import android.view.View;
11 | import android.view.animation.BounceInterpolator;
12 | import android.widget.ImageButton;
13 | import android.widget.LinearLayout;
14 |
15 | import com.flying.xiaopo.shader.R;
16 | import com.flying.xiaopo.shader.Utils;
17 |
18 | import butterknife.ButterKnife;
19 | import butterknife.InjectView;
20 | import butterknife.OnClick;
21 |
22 | /**
23 | * Created by lenovo on 2015/6/6.
24 | */
25 | public class PullToRefresh extends LinearLayout implements View.OnTouchListener {
26 |
27 | @InjectView(R.id.ibtn_add)
28 | ImageButton ibtn_add;
29 |
30 | @OnClick(R.id.ibtn_add)
31 | void addReminder() {
32 | if (onHeadButtonClickListener != null) {
33 | onHeadButtonClickListener.onHeadButtonClick(ibtn_add);
34 | }
35 | }
36 |
37 | OnHeadButtonClickListener onHeadButtonClickListener;
38 |
39 | View headerView;
40 |
41 | RecyclerView listView;
42 |
43 | MarginLayoutParams headerLayoutParams;
44 |
45 | int hideHeaderHeight;
46 |
47 | public PullToRefresh(Context context) {
48 | super(context);
49 | }
50 |
51 | public PullToRefresh(Context context, AttributeSet attrs, int defStyleAttr) {
52 | super(context, attrs, defStyleAttr);
53 |
54 | }
55 |
56 | public PullToRefresh(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
57 | super(context, attrs);
58 | }
59 |
60 | public PullToRefresh(Context context, AttributeSet attrs) {
61 | super(context, attrs);
62 | headerView = LayoutInflater.from(context).inflate(R.layout.headerview, null, true);
63 | ButterKnife.inject(this, headerView);
64 | setOrientation(VERTICAL);
65 | addView(headerView, 0);
66 | postDelayed(new Runnable() {
67 | @Override
68 | public void run() {
69 | ObjectAnimator animator = ObjectAnimator.ofFloat(ibtn_add, "translationX", Utils.dpToPx(70), 0);
70 | animator.setDuration(1000);
71 | animator.setInterpolator(new BounceInterpolator());
72 | animator.start();
73 | }
74 | }, 300);
75 | }
76 |
77 |
78 | @Override
79 | protected void onLayout(boolean changed, int l, int t, int r, int b) {
80 | super.onLayout(changed, l, t, r, b);
81 | if (changed) {
82 | hideHeaderHeight = headerView.getHeight() / 6;
83 | headerLayoutParams = (MarginLayoutParams) headerView.getLayoutParams();
84 | headerLayoutParams.topMargin = -hideHeaderHeight;
85 | Log.d("PULL", "onLayout" + hideHeaderHeight);
86 | }
87 | }
88 |
89 | @Override
90 | protected void onFinishInflate() {
91 | super.onFinishInflate();
92 | listView = (RecyclerView) getChildAt(1);
93 | listView.setOnTouchListener(this);
94 | }
95 |
96 | float down_y;
97 |
98 | @Override
99 | public boolean onTouch(View v, MotionEvent event) {
100 | switch (event.getAction()) {
101 | case MotionEvent.ACTION_DOWN:
102 | down_y = event.getRawY();
103 | break;
104 | case MotionEvent.ACTION_MOVE:
105 | float move_y = event.getRawY();
106 | int distance = (int) (move_y - down_y);
107 | headerView.setLayoutParams(headerLayoutParams);
108 | break;
109 | case MotionEvent.ACTION_UP:
110 | break;
111 | }
112 | return false;
113 | }
114 |
115 | public interface OnHeadButtonClickListener {
116 | void onHeadButtonClick(View view);
117 | }
118 |
119 |
120 | public void setOnHeadButtonClickListener(OnHeadButtonClickListener onHeadButtonClickListener) {
121 | this.onHeadButtonClickListener = onHeadButtonClickListener;
122 | }
123 |
124 |
125 | }
126 |
--------------------------------------------------------------------------------
/shader/src/main/res/drawable/circle_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
6 |
7 |
8 |
9 | -
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/shader/src/main/res/drawable/photo_background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/drawable/photo_background.jpg
--------------------------------------------------------------------------------
/shader/src/main/res/layout-v21/cell_tip.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
17 |
28 |
29 |
36 |
37 |
45 |
46 |
54 |
55 |
63 |
64 |
65 |
66 |
67 |
75 |
76 |
--------------------------------------------------------------------------------
/shader/src/main/res/layout-v21/headerview.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
20 |
21 |
22 |
23 |
29 |
30 |
37 |
38 |
39 |
40 |
41 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/shader/src/main/res/layout/activity_addtip.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/shader/src/main/res/layout/activity_addtip_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
19 |
20 |
31 |
32 |
33 |
34 |
38 |
39 |
43 |
44 |
50 |
51 |
56 |
57 |
63 |
64 |
71 |
72 |
73 |
78 |
79 |
85 |
86 |
93 |
94 |
95 |
96 |
97 |
107 |
--------------------------------------------------------------------------------
/shader/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
12 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/shader/src/main/res/layout/activity_notification_started.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/shader/src/main/res/layout/cell_tip.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
21 |
22 |
29 |
30 |
38 |
39 |
47 |
48 |
56 |
57 |
58 |
59 |
60 |
68 |
--------------------------------------------------------------------------------
/shader/src/main/res/layout/headerview.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
15 |
21 |
28 |
29 |
39 |
40 |
--------------------------------------------------------------------------------
/shader/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-xxhdpi/ic_access_time_grey600_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-xxhdpi/ic_access_time_grey600_24dp.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-xxhdpi/ic_check_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-xxhdpi/ic_check_black_24dp.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-xxhdpi/ic_delete_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-xxhdpi/ic_delete_white_24dp.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-xxhdpi/ic_plus_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-xxhdpi/ic_plus_black_24dp.png
--------------------------------------------------------------------------------
/shader/src/main/res/mipmap-xxhdpi/ic_view_day_grey600_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/shader/src/main/res/mipmap-xxhdpi/ic_view_day_grey600_24dp.png
--------------------------------------------------------------------------------
/shader/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/shader/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/shader/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Tips
3 |
4 | Hello world!
5 | Settings
6 | Tips
7 | Details
8 | Please write the event which you want to do.
9 | 只要我们能梦想的,我们就能实现。
10 | 做对的事情比把事情做对重要。
11 | 自弃者扶不起,自强者击不倒。
12 | 莫找借口失败,只找理由成功。
13 | 昨晚多几分钟的准备,今天少几小时的麻烦。
14 | 只要路是对的,就不怕路远。
15 | 你一天的爱心可能带来别人一生的感谢。
16 | 宁可慢些,不要太急而错误;宁可笨些,不要太巧而败事。
17 | 你的脸是为了呈现上帝赐给人类最贵重的礼物——微笑.
18 | 人生的烦恼,多在于知道的太多,而做的太少。
19 | 最重要的就是不要去看远方模糊的,而要做手边清楚的事。
20 | 只要热情犹在,哪怕青春消逝。
21 |
22 |
--------------------------------------------------------------------------------
/shader/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/volleytest/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/volleytest/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 21
5 | buildToolsVersion "22.0.0"
6 |
7 | defaultConfig {
8 | applicationId "com.flying.xiaopo.volleytest"
9 | minSdkVersion 15
10 | targetSdkVersion 21
11 | versionCode 1
12 | versionName "1.0"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | compile fileTree(include: ['*.jar'], dir: 'libs')
24 | compile 'com.android.support:appcompat-v7:21.0.3'
25 | compile files('libs/volly-1.0.11.jar')
26 | compile 'com.android.support:palette-v7:21.0.3'
27 | compile 'com.android.support:cardview-v7:21.0.3'
28 | compile 'com.android.support:recyclerview-v7:21.0.3'
29 | compile files('libs/butterknife-6.1.0.jar')
30 | compile files('libs/jsoup-1.8.2.jar')
31 | }
32 |
--------------------------------------------------------------------------------
/volleytest/libs/butterknife-6.1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/libs/butterknife-6.1.0.jar
--------------------------------------------------------------------------------
/volleytest/libs/jsoup-1.8.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/libs/jsoup-1.8.2.jar
--------------------------------------------------------------------------------
/volleytest/libs/volly-1.0.11.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/libs/volly-1.0.11.jar
--------------------------------------------------------------------------------
/volleytest/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 E:/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 |
--------------------------------------------------------------------------------
/volleytest/src/androidTest/java/com/flying/xiaopo/volleytest/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.flying.xiaopo.volleytest;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/volleytest/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/volleytest/src/main/java/com/flying/xiaopo/volleytest/MainActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/src/main/java/com/flying/xiaopo/volleytest/MainActivity.java
--------------------------------------------------------------------------------
/volleytest/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/volleytest/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/volleytest/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/volleytest/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wuapnjie/PoiShuHui/29c9783c1048891dab4109b4fed9796e7fa776c1/volleytest/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/volleytest/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
20 |
21 |
26 |
27 |
--------------------------------------------------------------------------------
/volleytest/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/volleytest/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/volleytest/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 |
6 |
--------------------------------------------------------------------------------
/volleytest/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | VolleyTest
5 | Hello world!
6 | Settings
7 |
8 |
9 |
--------------------------------------------------------------------------------
/volleytest/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
--------------------------------------------------------------------------------