├── .gitattributes ├── .gitignore ├── README.md ├── TopNews ├── AndroidManifest.xml ├── gen │ └── com │ │ ├── jeremyfeinstein │ │ └── slidingmenu │ │ │ └── lib │ │ │ └── R.java │ │ └── topnews │ │ ├── BuildConfig.java │ │ └── R.java ├── ic_launcher-web.png ├── libs │ ├── jsoup-1.7.2.jar │ └── universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar ├── lint.xml ├── proguard-project.txt ├── project.properties ├── res │ ├── anim │ │ ├── slide_in_left.xml │ │ ├── slide_in_right.xml │ │ ├── slide_left_in.xml │ │ ├── slide_left_out.xml │ │ ├── slide_out_left.xml │ │ ├── slide_out_right.xml │ │ └── slide_right_out.xml │ ├── color │ │ ├── btn_common_text.xml │ │ ├── dialog_listpage_text.xml │ │ ├── item_abstract.xml │ │ ├── item_title.xml │ │ ├── left_drawer_item_text.xml │ │ ├── setting_alt_text.xml │ │ ├── subscribe_item_text_color.xml │ │ └── top_category_scroll_text_color_day.xml │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ └── ic_launcher.png │ ├── drawable-nodpi │ │ ├── icon.png │ │ ├── top_popu_right_up.9.png │ │ └── transparent.9.png │ ├── drawable-xhdpi │ │ ├── account_icon_kaixin.png │ │ ├── account_icon_renren.png │ │ ├── arrow_channel.png │ │ ├── arrow_drawer.png │ │ ├── arrow_listpage.png │ │ ├── big_loadpic_empty_listpage.png │ │ ├── btn_back_detail_normal.png │ │ ├── btn_back_detail_pressed.png │ │ ├── btn_back_normal.png │ │ ├── btn_back_pressed.png │ │ ├── btn_category_normal.png │ │ ├── btn_category_normal_night.png │ │ ├── btn_category_pressed.png │ │ ├── btn_common_disabled.9.png │ │ ├── btn_common_normal.9.png │ │ ├── btn_common_pressed.9.png │ │ ├── btn_kaixin_normal.png │ │ ├── btn_kaixin_pressed.png │ │ ├── btn_qq_normal.png │ │ ├── btn_qq_pressed.png │ │ ├── btn_renren_normal.png │ │ ├── btn_renren_pressed.png │ │ ├── btn_sina_normal.png │ │ ├── btn_sina_pressed.png │ │ ├── btn_tencent_normal.png │ │ ├── btn_tencent_pressed.png │ │ ├── channel_glide.png │ │ ├── channel_glide_night.png │ │ ├── channel_glide_press.png │ │ ├── channel_glide_press_night.png │ │ ├── channel_leftblock.png │ │ ├── channel_leftblock_night.png │ │ ├── channel_new.png │ │ ├── channel_rightblock.png │ │ ├── channel_rightblock_night.png │ │ ├── default_round_head.png │ │ ├── detail_loading.png │ │ ├── dynamic_refresh_normal.png │ │ ├── dynamic_refresh_pressed.png │ │ ├── ic_action_favor_normal.png │ │ ├── ic_action_favor_on_normal.png │ │ ├── ic_action_favor_on_pressed.png │ │ ├── ic_action_favor_pressed.png │ │ ├── ic_action_more_normal.png │ │ ├── ic_action_more_pressed.png │ │ ├── ic_action_next_disabled.png │ │ ├── ic_action_next_normal.png │ │ ├── ic_action_next_pressed.png │ │ ├── ic_action_previous_disabled.png │ │ ├── ic_action_previous_normal.png │ │ ├── ic_action_previous_pressed.png │ │ ├── ic_action_report_normal.png │ │ ├── ic_action_report_pressed.png │ │ ├── ic_action_repost_normal.png │ │ ├── ic_action_repost_pressed.png │ │ ├── ic_action_share_normal.png │ │ ├── ic_action_share_pressed.png │ │ ├── ic_action_write_normal.png │ │ ├── ic_action_write_pressed.png │ │ ├── ic_city_native.png │ │ ├── ic_download_normal.png │ │ ├── ic_download_pressed.png │ │ ├── ic_drawer_appstore_normal.png │ │ ├── ic_drawer_appstore_pressed.png │ │ ├── ic_drawer_favorite_normal.png │ │ ├── ic_drawer_favorite_pressed.png │ │ ├── ic_drawer_feedback_normal.png │ │ ├── ic_drawer_feedback_pressed.png │ │ ├── ic_drawer_message_normal.png │ │ ├── ic_drawer_message_pressed.png │ │ ├── ic_drawer_offline_normal.png │ │ ├── ic_drawer_offline_pressed.png │ │ ├── ic_drawer_qzone.png │ │ ├── ic_drawer_search_normal.png │ │ ├── ic_drawer_search_pressed.png │ │ ├── ic_drawer_setting_normal.png │ │ ├── ic_drawer_setting_pressed.png │ │ ├── ic_drawer_tencent.png │ │ ├── ic_drawer_weibo.png │ │ ├── ic_full_image_failed.png │ │ ├── ic_launcher.png │ │ ├── ic_mark_exclusive.png │ │ ├── ic_mark_exclusive_night.png │ │ ├── ic_mark_favor.png │ │ ├── ic_mark_favor_night.png │ │ ├── ic_mark_first.png │ │ ├── ic_mark_first_night.png │ │ ├── ic_mark_hot.png │ │ ├── ic_mark_hot_night.png │ │ ├── ic_mark_recommend.png │ │ ├── ic_mark_recommend_night.png │ │ ├── ic_toast_bury.png │ │ ├── ic_toast_digg.png │ │ ├── ic_toast_fav.png │ │ ├── ic_toast_post_fail.png │ │ ├── ic_toast_post_ok.png │ │ ├── ic_toast_unfav.png │ │ ├── ic_video.png │ │ ├── icon_new.png │ │ ├── left_drawer_activity.png │ │ ├── left_drawer_activity_press.png │ │ ├── left_drawer_download.png │ │ ├── left_drawer_pgc_normal.png │ │ ├── left_drawer_pgc_pressed.png │ │ ├── listpage_more_close_normal.png │ │ ├── listpage_more_close_pressed.png │ │ ├── listpage_more_dislike_normal.png │ │ ├── listpage_more_dislike_pressed.png │ │ ├── listpage_more_dislike_selected_normal.png │ │ ├── listpage_more_dislike_selected_pressed.png │ │ ├── listpage_more_like_normal.png │ │ ├── listpage_more_like_pressed.png │ │ ├── listpage_more_like_seleted_normal.png │ │ ├── listpage_more_like_seleted_pressed.png │ │ ├── listpage_more_speak_normal.png │ │ ├── listpage_more_speak_pressed.png │ │ ├── login_background_introduce.png │ │ ├── popicon_listpage_normal.png │ │ ├── popicon_listpage_pressed.png │ │ ├── profile_cell_down_shadow.png │ │ ├── refreshicon_titlebar.png │ │ ├── review_toolbar_normal.png │ │ ├── review_toolbar_pressed.png │ │ ├── right_drawer_attention_normal.png │ │ ├── right_drawer_attention_pressed.png │ │ ├── right_drawer_normal.png │ │ ├── right_drawer_pressed.png │ │ ├── small_loadpic_empty_listpage.png │ │ ├── spinner_76_inner_holo.png │ │ ├── spinner_76_outer_holo.png │ │ ├── splash.png │ │ ├── switch_btn_off.png │ │ ├── switch_btn_on.png │ │ ├── switch_btn_slipper.png │ │ ├── title.png │ │ ├── titlebar_refresh_detail_cancel.png │ │ ├── titlebar_review_normal.png │ │ ├── titlebar_review_presssed.png │ │ ├── wiper_switch_off_btn.png │ │ ├── wiper_switch_on_btn.png │ │ └── wiper_switch_slipper_btn.png │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ ├── drawable │ │ ├── badge_titlebar.xml │ │ ├── bg_date.xml │ │ ├── bg_full_image.xml │ │ ├── bg_head.xml │ │ ├── bg_head_normal.xml │ │ ├── bg_head_pressed.xml │ │ ├── bg_notify.xml │ │ ├── bg_row_center.xml │ │ ├── bg_row_end.xml │ │ ├── bg_row_head.xml │ │ ├── bg_slide_hint.xml │ │ ├── bg_titlebar.xml │ │ ├── btn_back.xml │ │ ├── btn_back_detail.xml │ │ ├── btn_category.xml │ │ ├── btn_common.xml │ │ ├── btn_kaixin.xml │ │ ├── btn_qq.xml │ │ ├── btn_renren.xml │ │ ├── btn_sina.xml │ │ ├── btn_tencent.xml │ │ ├── channel_glide_day_bg.xml │ │ ├── channel_glide_night_bg.xml │ │ ├── commentbg_listpage.xml │ │ ├── detail_bg_titlebar.xml │ │ ├── detail_title_bar_clip.xml │ │ ├── detail_title_bar_progress.xml │ │ ├── dislike_bg.xml │ │ ├── dislike_line.xml │ │ ├── favorite_delete_btn.xml │ │ ├── favorite_delete_btn_normal.xml │ │ ├── favorite_delete_btn_pressed.xml │ │ ├── ic_action_comment.xml │ │ ├── ic_action_favor.xml │ │ ├── ic_action_more.xml │ │ ├── ic_action_next.xml │ │ ├── ic_action_previous.xml │ │ ├── ic_action_report.xml │ │ ├── ic_action_repost.xml │ │ ├── ic_action_share.xml │ │ ├── ic_action_write.xml │ │ ├── ic_download.xml │ │ ├── ic_drawer_appstore.xml │ │ ├── ic_drawer_favorite.xml │ │ ├── ic_drawer_feedback.xml │ │ ├── ic_drawer_message.xml │ │ ├── ic_drawer_offline.xml │ │ ├── ic_drawer_pgc.xml │ │ ├── ic_drawer_search.xml │ │ ├── ic_drawer_setting.xml │ │ ├── image_holder_listpage.xml │ │ ├── image_holder_listpage_failed.xml │ │ ├── image_holder_listpage_loading.xml │ │ ├── left_drawer_activity_selector.xml │ │ ├── left_drawer_count_bg.xml │ │ ├── left_drawer_item_bg.xml │ │ ├── list_item_local_bg.xml │ │ ├── listpage_more_close.xml │ │ ├── listpage_more_dislike.xml │ │ ├── listpage_more_like.xml │ │ ├── listpage_more_speech.xml │ │ ├── menu_back_sliding.xml │ │ ├── newsbg_listpage.xml │ │ ├── popicon_listpage.xml │ │ ├── progress_large_holo.xml │ │ ├── radio_buttong_bg.xml │ │ ├── right_drawer.xml │ │ ├── right_drawer_attention.xml │ │ ├── right_drawer_dynamic_refresh.xml │ │ ├── right_drawer_top_count_bg.xml │ │ ├── round_avatar_bg.xml │ │ ├── shadow.xml │ │ ├── shadowright.xml │ │ ├── small_image_holder_listpage.xml │ │ ├── small_image_holder_listpage_failed.xml │ │ ├── small_image_holder_listpage_loading.xml │ │ ├── subscribe_bg.xml │ │ ├── subscribe_item_bg.xml │ │ ├── subscribe_item_text_color_night.xml │ │ ├── switch_btn.xml │ │ ├── titlebar_review.xml │ │ ├── top_category_scroll_text_view_bg.xml │ │ ├── top_category_scroll_text_view_bg_night.xml │ │ └── wiper_switch_btn.xml │ ├── layout │ │ ├── channel.xml │ │ ├── channel_item.xml │ │ ├── city.xml │ │ ├── city_category_list_tip.xml │ │ ├── city_item_content.xml │ │ ├── city_item_section.xml │ │ ├── detail_title_bar.xml │ │ ├── details.xml │ │ ├── details_imageshow.xml │ │ ├── details_imageshow_item.xml │ │ ├── left_drawer_fragment.xml │ │ ├── list_item.xml │ │ ├── list_item_pop.xml │ │ ├── list_item_section.xml │ │ ├── main.xml │ │ ├── main_head.xml │ │ ├── news_fragment.xml │ │ ├── popup_toast.xml │ │ ├── profile_drawer_right.xml │ │ ├── settings.xml │ │ ├── title_bar.xml │ │ ├── tool_bar.xml │ │ └── welcome.xml │ ├── menu │ │ └── main.xml │ ├── values-sw600dp │ │ └── dimens.xml │ ├── values-sw720dp-land │ │ └── dimens.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── integers.xml │ │ ├── strings.xml │ │ ├── style_switch.xml │ │ └── styles.xml └── src │ └── com │ └── topnews │ ├── ChannelActivity.java │ ├── CityListActivity.java │ ├── DetailsActivity.java │ ├── ImageShowActivity.java │ ├── MainActivity.java │ ├── SettingsActivity.java │ ├── Welcome.java │ ├── adapter │ ├── CityAdapter.java │ ├── DragAdapter.java │ ├── ImagePagerAdapter.java │ ├── NewsAdapter.java │ ├── NewsFragmentPagerAdapter.java │ └── OtherAdapter.java │ ├── app │ └── AppApplication.java │ ├── base │ └── BaseActivity.java │ ├── bean │ ├── ChannelItem.java │ ├── ChannelManage.java │ ├── CityEntity.java │ └── NewsEntity.java │ ├── dao │ ├── ChannelDao.java │ └── ChannelDaoInface.java │ ├── db │ ├── DBUtil.java │ └── SQLHelper.java │ ├── fragment │ └── NewsFragment.java │ ├── listener │ └── BackGestureListener.java │ ├── service │ └── NewsDetailsService.java │ ├── tool │ ├── BaseTools.java │ ├── Constants.java │ ├── DataTools.java │ ├── DateTools.java │ └── Options.java │ └── view │ ├── ColumnHorizontalScrollView.java │ ├── DragGrid.java │ ├── DrawerView.java │ ├── HeadListView.java │ ├── OtherGridView.java │ ├── SwitchButton.java │ ├── ToastDialog.java │ ├── TopToastView.java │ └── imageshow │ ├── EclairMotionEvent.java │ ├── ImageShowViewPager.java │ ├── TouchImageView.java │ └── WrapMotionEvent.java ├── art ├── 1.png ├── 10.png ├── 11.png ├── 12.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png └── 9.png └── library └── library_SlidingMenu ├── AndroidManifest.xml ├── LICENSE.txt ├── gen └── com │ └── jeremyfeinstein │ └── slidingmenu │ └── lib │ ├── BuildConfig.java │ └── R.java ├── library.iml ├── libs └── android-support-v4.jar ├── pom.xml ├── project.properties ├── res ├── layout │ └── slidingmenumain.xml └── values │ ├── attrs.xml │ └── ids.xml └── src └── com └── jeremyfeinstein └── slidingmenu └── lib ├── CanvasTransformerBuilder.java ├── CustomViewAbove.java ├── CustomViewBehind.java ├── MenuInterface.java ├── SlidingMenu.java └── app ├── SlidingActivity.java ├── SlidingActivityBase.java ├── SlidingActivityHelper.java ├── SlidingFragmentActivity.java ├── SlidingListActivity.java └── SlidingPreferenceActivity.java /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | 131 | # NuGet Packages Directory 132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 133 | #packages/ 134 | 135 | # Windows Azure Build Output 136 | csx 137 | *.build.csdef 138 | 139 | # Windows Store app package directory 140 | AppPackages/ 141 | 142 | # Others 143 | sql/ 144 | *.Cache 145 | ClientBin/ 146 | [Ss]tyle[Cc]op.* 147 | ~$* 148 | *~ 149 | *.dbmdl 150 | *.[Pp]ublish.xml 151 | *.pfx 152 | *.publishsettings 153 | 154 | # RIA/Silverlight projects 155 | Generated_Code/ 156 | 157 | # Backup & report files from converting an old project file to a newer 158 | # Visual Studio version. Backup files are not needed, because we have git ;-) 159 | _UpgradeReport_Files/ 160 | Backup*/ 161 | UpgradeLog*.XML 162 | UpgradeLog*.htm 163 | 164 | # SQL Server files 165 | App_Data/*.mdf 166 | App_Data/*.ldf 167 | 168 | ############# 169 | ## Windows detritus 170 | ############# 171 | 172 | # Windows image file caches 173 | Thumbs.db 174 | ehthumbs.db 175 | 176 | # Folder config file 177 | Desktop.ini 178 | 179 | # Recycle Bin used on file shares 180 | $RECYCLE.BIN/ 181 | 182 | # Mac crap 183 | .DS_Store 184 | 185 | 186 | ############# 187 | ## Python 188 | ############# 189 | 190 | *.py[co] 191 | 192 | # Packages 193 | *.egg 194 | *.egg-info 195 | dist/ 196 | build/ 197 | eggs/ 198 | parts/ 199 | var/ 200 | sdist/ 201 | develop-eggs/ 202 | .installed.cfg 203 | 204 | # Installer logs 205 | pip-log.txt 206 | 207 | # Unit test / coverage reports 208 | .coverage 209 | .tox 210 | 211 | #Translations 212 | *.mo 213 | 214 | #Mr Developer 215 | .mr.developer.cfg 216 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | TopNews (今日头条 android客户端) 2 | ======= 3 | 4 | About 5 | ------ 6 | 高仿“今日头条”客户端,实现它大部分的功能,练习之作,目的了解怎么发开一个新闻类客户端,从涉及的相关知识点中提升自我水平。 7 | 8 | 预览 9 | ------ 10 | 主界面 11 | ![github](https://raw.githubusercontent.com/Rano1/TopNews/master/art/1.png "github") 12 | 13 | 频道管理界面 14 | ![github](https://raw.githubusercontent.com/Rano1/TopNews/master/art/7.png "github") 15 | 16 | 新闻阅读界面 17 | ![github](https://raw.githubusercontent.com/Rano1/TopNews/master/art/9.png "github") 18 | 19 | 新闻图片浏览界面 20 | ![github](https://raw.githubusercontent.com/Rano1/TopNews/master/art/11.png "github") 21 | 22 | 开发工具 23 | ------ 24 | Eclipse 25 | 26 | 使用的开源库 27 | ------ 28 | 1.slidingmenu 侧拉菜单 29 | 30 | 2.UniversalImageLoader 目前最流行的图片异步加载库,配置强大,使用简单,绝对能满足你的各种需求! 31 | 32 | 33 | 相关博文地址 34 | ------ 35 | http://blog.csdn.net/vipzjyno1/ 36 | -------------------------------------------------------------------------------- /TopNews/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 17 | 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 | -------------------------------------------------------------------------------- /TopNews/gen/com/jeremyfeinstein/slidingmenu/lib/R.java: -------------------------------------------------------------------------------- 1 | /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 | * 3 | * This class was automatically generated by the 4 | * aapt tool from the resource data it found. It 5 | * should not be modified by hand. 6 | */ 7 | package com.jeremyfeinstein.slidingmenu.lib; 8 | 9 | public final class R { 10 | public static final class attr { 11 | public static final int behindOffset = 0x7f010003; 12 | public static final int behindScrollScale = 0x7f010005; 13 | public static final int behindWidth = 0x7f010004; 14 | public static final int fadeDegree = 0x7f01000b; 15 | public static final int fadeEnabled = 0x7f01000a; 16 | public static final int mode = 0x7f010000; 17 | public static final int selectorDrawable = 0x7f01000d; 18 | public static final int selectorEnabled = 0x7f01000c; 19 | public static final int shadowDrawable = 0x7f010008; 20 | public static final int shadowWidth = 0x7f010009; 21 | public static final int touchModeAbove = 0x7f010006; 22 | public static final int touchModeBehind = 0x7f010007; 23 | public static final int viewAbove = 0x7f010001; 24 | public static final int viewBehind = 0x7f010002; 25 | } 26 | public static final class id { 27 | public static final int fullscreen = 0x7f050003; 28 | public static final int left = 0x7f050000; 29 | public static final int margin = 0x7f050002; 30 | public static final int right = 0x7f050001; 31 | public static final int selected_view = 0x7f050004; 32 | public static final int slidingmenumain = 0x7f0500e4; 33 | } 34 | public static final class layout { 35 | public static final int slidingmenumain = 0x7f030014; 36 | } 37 | public static final class styleable { 38 | public static final int[] SlidingMenu = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d }; 39 | public static final int SlidingMenu_behindOffset = 3; 40 | public static final int SlidingMenu_behindScrollScale = 5; 41 | public static final int SlidingMenu_behindWidth = 4; 42 | public static final int SlidingMenu_fadeDegree = 11; 43 | public static final int SlidingMenu_fadeEnabled = 10; 44 | public static final int SlidingMenu_mode = 0; 45 | public static final int SlidingMenu_selectorDrawable = 13; 46 | public static final int SlidingMenu_selectorEnabled = 12; 47 | public static final int SlidingMenu_shadowDrawable = 8; 48 | public static final int SlidingMenu_shadowWidth = 9; 49 | public static final int SlidingMenu_touchModeAbove = 6; 50 | public static final int SlidingMenu_touchModeBehind = 7; 51 | public static final int SlidingMenu_viewAbove = 1; 52 | public static final int SlidingMenu_viewBehind = 2; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /TopNews/gen/com/topnews/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.topnews; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /TopNews/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/ic_launcher-web.png -------------------------------------------------------------------------------- /TopNews/libs/jsoup-1.7.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/libs/jsoup-1.7.2.jar -------------------------------------------------------------------------------- /TopNews/libs/universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/libs/universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar -------------------------------------------------------------------------------- /TopNews/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /TopNews/proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /TopNews/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-17 15 | android.library.reference.1=..\\library\\library_SlidingMenu 16 | -------------------------------------------------------------------------------- /TopNews/res/anim/slide_in_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/anim/slide_left_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/anim/slide_left_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/anim/slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/anim/slide_right_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/color/btn_common_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/color/dialog_listpage_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/color/item_abstract.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/color/item_title.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/color/left_drawer_item_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/color/setting_alt_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/color/subscribe_item_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/color/top_category_scroll_text_color_day.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /TopNews/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /TopNews/res/drawable-nodpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-nodpi/icon.png -------------------------------------------------------------------------------- /TopNews/res/drawable-nodpi/top_popu_right_up.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-nodpi/top_popu_right_up.9.png -------------------------------------------------------------------------------- /TopNews/res/drawable-nodpi/transparent.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-nodpi/transparent.9.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/account_icon_kaixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/account_icon_kaixin.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/account_icon_renren.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/account_icon_renren.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/arrow_channel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/arrow_channel.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/arrow_drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/arrow_drawer.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/arrow_listpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/arrow_listpage.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/big_loadpic_empty_listpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/big_loadpic_empty_listpage.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_back_detail_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_back_detail_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_back_detail_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_back_detail_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_back_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_back_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_back_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_back_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_category_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_category_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_category_normal_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_category_normal_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_category_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_category_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_common_disabled.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_common_disabled.9.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_common_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_common_normal.9.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_common_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_common_pressed.9.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_kaixin_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_kaixin_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_kaixin_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_kaixin_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_qq_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_qq_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_qq_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_qq_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_renren_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_renren_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_renren_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_renren_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_sina_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_sina_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_sina_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_sina_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_tencent_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_tencent_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/btn_tencent_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/btn_tencent_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_glide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_glide.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_glide_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_glide_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_glide_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_glide_press.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_glide_press_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_glide_press_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_leftblock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_leftblock.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_leftblock_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_leftblock_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_new.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_rightblock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_rightblock.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/channel_rightblock_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/channel_rightblock_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/default_round_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/default_round_head.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/detail_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/detail_loading.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/dynamic_refresh_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/dynamic_refresh_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/dynamic_refresh_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/dynamic_refresh_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_favor_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_favor_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_favor_on_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_favor_on_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_favor_on_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_favor_on_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_favor_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_favor_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_more_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_more_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_more_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_more_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_next_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_next_disabled.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_next_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_next_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_next_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_next_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_previous_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_previous_disabled.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_previous_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_previous_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_previous_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_previous_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_report_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_report_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_report_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_report_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_repost_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_repost_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_repost_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_repost_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_share_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_share_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_share_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_share_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_write_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_write_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_action_write_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_action_write_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_city_native.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_city_native.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_download_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_download_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_download_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_download_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_appstore_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_appstore_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_appstore_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_appstore_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_favorite_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_favorite_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_favorite_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_favorite_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_feedback_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_feedback_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_feedback_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_feedback_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_message_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_message_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_message_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_message_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_offline_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_offline_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_offline_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_offline_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_qzone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_qzone.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_search_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_search_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_search_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_search_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_setting_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_setting_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_setting_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_setting_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_tencent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_tencent.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_drawer_weibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_drawer_weibo.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_full_image_failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_full_image_failed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_exclusive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_exclusive.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_exclusive_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_exclusive_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_favor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_favor.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_favor_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_favor_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_first.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_first_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_first_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_hot.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_hot_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_hot_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_recommend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_recommend.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_mark_recommend_night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_mark_recommend_night.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_toast_bury.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_toast_bury.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_toast_digg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_toast_digg.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_toast_fav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_toast_fav.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_toast_post_fail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_toast_post_fail.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_toast_post_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_toast_post_ok.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_toast_unfav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_toast_unfav.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/ic_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/ic_video.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/icon_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/icon_new.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/left_drawer_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/left_drawer_activity.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/left_drawer_activity_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/left_drawer_activity_press.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/left_drawer_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/left_drawer_download.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/left_drawer_pgc_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/left_drawer_pgc_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/left_drawer_pgc_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/left_drawer_pgc_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_close_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_close_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_close_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_close_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_dislike_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_dislike_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_dislike_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_dislike_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_dislike_selected_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_dislike_selected_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_dislike_selected_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_dislike_selected_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_like_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_like_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_like_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_like_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_like_seleted_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_like_seleted_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_like_seleted_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_like_seleted_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_speak_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_speak_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/listpage_more_speak_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/listpage_more_speak_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/login_background_introduce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/login_background_introduce.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/popicon_listpage_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/popicon_listpage_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/popicon_listpage_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/popicon_listpage_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/profile_cell_down_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/profile_cell_down_shadow.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/refreshicon_titlebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/refreshicon_titlebar.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/review_toolbar_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/review_toolbar_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/review_toolbar_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/review_toolbar_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/right_drawer_attention_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/right_drawer_attention_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/right_drawer_attention_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/right_drawer_attention_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/right_drawer_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/right_drawer_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/right_drawer_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/right_drawer_pressed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/small_loadpic_empty_listpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/small_loadpic_empty_listpage.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/spinner_76_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/spinner_76_inner_holo.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/spinner_76_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/spinner_76_outer_holo.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/splash.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/switch_btn_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/switch_btn_off.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/switch_btn_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/switch_btn_on.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/switch_btn_slipper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/switch_btn_slipper.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/title.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/titlebar_refresh_detail_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/titlebar_refresh_detail_cancel.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/titlebar_review_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/titlebar_review_normal.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/titlebar_review_presssed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/titlebar_review_presssed.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/wiper_switch_off_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/wiper_switch_off_btn.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/wiper_switch_on_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/wiper_switch_on_btn.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xhdpi/wiper_switch_slipper_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xhdpi/wiper_switch_slipper_btn.png -------------------------------------------------------------------------------- /TopNews/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TopNews/res/drawable/badge_titlebar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_date.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_full_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_head.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_head_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_head_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_notify.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_row_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_row_end.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_row_head.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_slide_hint.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/bg_titlebar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_back_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_common.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_kaixin.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_qq.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_renren.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_sina.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/btn_tencent.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/channel_glide_day_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/channel_glide_night_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/commentbg_listpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TopNews/res/drawable/detail_bg_titlebar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/detail_title_bar_clip.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /TopNews/res/drawable/detail_title_bar_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/dislike_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TopNews/res/drawable/dislike_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TopNews/res/drawable/favorite_delete_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/favorite_delete_btn_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/favorite_delete_btn_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_comment.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_favor.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_more.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_next.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_previous.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_repost.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_share.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_action_write.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_download.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_appstore.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_favorite.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_feedback.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_offline.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_pgc.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/ic_drawer_setting.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/image_holder_listpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/image_holder_listpage_failed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /TopNews/res/drawable/image_holder_listpage_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /TopNews/res/drawable/left_drawer_activity_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/left_drawer_count_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/left_drawer_item_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /TopNews/res/drawable/list_item_local_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /TopNews/res/drawable/listpage_more_close.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/listpage_more_dislike.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TopNews/res/drawable/listpage_more_like.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TopNews/res/drawable/listpage_more_speech.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/menu_back_sliding.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /TopNews/res/drawable/newsbg_listpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /TopNews/res/drawable/popicon_listpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/progress_large_holo.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /TopNews/res/drawable/radio_buttong_bg.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 | -------------------------------------------------------------------------------- /TopNews/res/drawable/right_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/right_drawer_attention.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/right_drawer_dynamic_refresh.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/right_drawer_top_count_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/round_avatar_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/shadow.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/shadowright.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/small_image_holder_listpage.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TopNews/res/drawable/small_image_holder_listpage_failed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /TopNews/res/drawable/small_image_holder_listpage_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /TopNews/res/drawable/subscribe_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /TopNews/res/drawable/subscribe_item_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 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 | -------------------------------------------------------------------------------- /TopNews/res/drawable/subscribe_item_text_color_night.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TopNews/res/drawable/switch_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/titlebar_review.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/drawable/top_category_scroll_text_view_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /TopNews/res/drawable/top_category_scroll_text_view_bg_night.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /TopNews/res/drawable/wiper_switch_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/layout/channel_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 20 | 21 | 22 | 28 | 29 | -------------------------------------------------------------------------------- /TopNews/res/layout/city.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 21 | 22 | 29 | 30 | -------------------------------------------------------------------------------- /TopNews/res/layout/city_category_list_tip.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 21 | 22 | 27 | 28 | 40 | 41 | 46 | -------------------------------------------------------------------------------- /TopNews/res/layout/city_item_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 19 | 20 | -------------------------------------------------------------------------------- /TopNews/res/layout/city_item_section.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 18 | 19 | -------------------------------------------------------------------------------- /TopNews/res/layout/detail_title_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 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 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /TopNews/res/layout/details_imageshow.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 22 | 23 | 31 | 32 | -------------------------------------------------------------------------------- /TopNews/res/layout/details_imageshow_item.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 19 | 20 | 26 | 27 | 36 | 37 | -------------------------------------------------------------------------------- /TopNews/res/layout/list_item_pop.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 20 | 21 | 30 | 31 | 32 | 37 | 38 | 48 | 49 | 58 | 59 | 60 | 64 | 65 | 75 | 76 | 85 | 86 | 87 | 91 | 92 | 99 | 100 | -------------------------------------------------------------------------------- /TopNews/res/layout/list_item_section.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 19 | 20 | 26 | 27 | 33 | 34 | 35 | 40 | 41 | -------------------------------------------------------------------------------- /TopNews/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 15 | 16 | 21 | 22 | 27 | 28 | 37 | 38 | 39 | 47 | 48 | 56 | 57 | 58 | 62 | 63 | 69 | 70 | 71 | 72 | 77 | 78 | 82 | 83 | -------------------------------------------------------------------------------- /TopNews/res/layout/news_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | 21 | 22 | 30 | 31 | 40 | 41 | 48 | 49 | 56 | 57 | 65 | 66 | 71 | 72 | 73 | 74 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /TopNews/res/layout/popup_toast.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /TopNews/res/layout/title_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 17 | 18 | 23 | 24 | 34 | 35 | -------------------------------------------------------------------------------- /TopNews/res/layout/welcome.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /TopNews/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /TopNews/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TopNews/res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 128dp 8 | 9 | 10 | -------------------------------------------------------------------------------- /TopNews/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /TopNews/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /TopNews/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2 4 | 300 5 | 6 | -------------------------------------------------------------------------------- /TopNews/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 今日头条 5 | Settings 6 | Hello world! 7 | 登录后,将推荐给你更多感兴趣的文章 8 | 搜索 9 | 收藏 10 | 消息 11 | 离线 12 | 取消离线 13 | 活动 14 | 设置 15 | 反馈 16 | 精彩应用 17 | "登录后 可关注好友评论和收藏" 18 | 未登录 19 | 发现%1$d条更新 20 | 暂无更新, 休息一会儿 21 | 夜间模式 22 | 日间模式 23 | 列表显示摘要 24 | 字体大小 25 | 列表页评论 26 | 列表页刷新 27 | 2G/3G网络流量 28 | 推送通知 29 | 互动插件 30 | 收藏时转发 31 | 顶踩时转发 32 | 清理缓存 33 | 意见反馈 34 | 精彩应用推荐 35 | 检查新版本 36 | 夜间模式 37 | 左右翻页 38 | 启动网络调试 39 | 关闭摇一摇切换夜间模式 40 | 使用帮助 41 | © 头条网 toutiao.com 42 | 删除 43 | 编辑 44 | 取消 45 | 读文章 46 | 频道管理 47 | 我的频道 48 | 更多频道 49 | 单击增删频道 50 | 单击增删频道,长按拖拽排序 51 | 撤消 52 | 今天 53 | 昨天 54 | 前天 55 | 发现%1$s篇文章 56 | 发现%1$d条更新 57 | 发现%1$d条更新 58 | 点击选择其他城市 59 | 选择城市,立即查看本地新闻 60 | 请先选择您关注的城市 61 | 加载失败,点击重试 62 | 63 | -------------------------------------------------------------------------------- /TopNews/res/values/style_switch.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 | 51 | 52 | 53 | 54 | 55 | 56 | 68 | 69 | 70 | 71 | #FFFFFF 72 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/CityListActivity.java: -------------------------------------------------------------------------------- 1 | package com.topnews; 2 | 3 | import java.util.ArrayList; 4 | 5 | import android.content.Intent; 6 | import android.os.Bundle; 7 | import android.view.LayoutInflater; 8 | import android.view.View; 9 | import android.widget.AdapterView; 10 | import android.widget.Button; 11 | import android.widget.TextView; 12 | import android.widget.AdapterView.OnItemClickListener; 13 | 14 | import com.topnews.adapter.CityAdapter; 15 | import com.topnews.base.BaseActivity; 16 | import com.topnews.bean.CityEntity; 17 | import com.topnews.tool.Constants; 18 | import com.topnews.view.HeadListView; 19 | 20 | public class CityListActivity extends BaseActivity { 21 | private TextView title; 22 | private HeadListView mListView; 23 | private ArrayList cityList; 24 | private CityAdapter mAdapter; 25 | @Override 26 | protected void onCreate(Bundle savedInstanceState) { 27 | // TODO Auto-generated method stub 28 | super.onCreate(savedInstanceState); 29 | setContentView(R.layout.city); 30 | initView(); 31 | initData(); 32 | } 33 | 34 | private void initView() { 35 | title = (TextView) findViewById(R.id.title); 36 | mListView = (HeadListView)findViewById(R.id.cityListView); 37 | } 38 | 39 | private void initData() { 40 | title.setText("当前城市-杭州"); 41 | cityList = Constants.getCityList(); 42 | mAdapter = new CityAdapter(this, cityList); 43 | mListView.setAdapter(mAdapter); 44 | mListView.setOnScrollListener(mAdapter); 45 | mListView.setPinnedHeaderView(LayoutInflater.from(this).inflate(R.layout.city_item_section, mListView, false)); 46 | mListView.setOnItemClickListener(new OnItemClickListener() { 47 | 48 | @Override 49 | public void onItemClick(AdapterView parent, View view, 50 | int position, long id) { 51 | // Intent intent = new Intent(getApplicationContext(), DetailsActivity.class); 52 | // startActivity(intent); 53 | overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); 54 | } 55 | }); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/ImageShowActivity.java: -------------------------------------------------------------------------------- 1 | package com.topnews; 2 | 3 | import java.util.ArrayList; 4 | 5 | import android.os.Bundle; 6 | import android.support.v4.view.ViewPager; 7 | import android.support.v4.view.ViewPager.OnPageChangeListener; 8 | import android.widget.Button; 9 | import android.widget.ImageView; 10 | import android.widget.TextView; 11 | 12 | import com.topnews.adapter.ImagePagerAdapter; 13 | import com.topnews.base.BaseActivity; 14 | import com.topnews.view.imageshow.ImageShowViewPager; 15 | 16 | /* 17 | * 图片展示 18 | */ 19 | public class ImageShowActivity extends BaseActivity { 20 | /** 图片展示 */ 21 | private ImageShowViewPager image_pager; 22 | private TextView page_number; 23 | /** 图片下载按钮 */ 24 | private ImageView download; 25 | /** 图片列表 */ 26 | private ArrayList imgsUrl; 27 | /** PagerAdapter */ 28 | private ImagePagerAdapter mAdapter; 29 | @Override 30 | protected void onCreate(Bundle savedInstanceState) { 31 | // TODO Auto-generated method stub 32 | super.onCreate(savedInstanceState); 33 | setContentView(R.layout.details_imageshow); 34 | initView(); 35 | initData(); 36 | initViewPager(); 37 | } 38 | 39 | private void initData() { 40 | imgsUrl = getIntent().getStringArrayListExtra("infos"); 41 | page_number.setText("1" + "/" + imgsUrl.size()); 42 | } 43 | 44 | private void initView() { 45 | image_pager = (ImageShowViewPager) findViewById(R.id.image_pager); 46 | page_number = (TextView) findViewById(R.id.page_number); 47 | download = (ImageView) findViewById(R.id.download); 48 | image_pager.setOnPageChangeListener(new OnPageChangeListener() { 49 | 50 | @Override 51 | public void onPageSelected(int arg0) { 52 | page_number.setText((arg0 + 1) + "/" + imgsUrl.size()); 53 | } 54 | 55 | @Override 56 | public void onPageScrolled(int arg0, float arg1, int arg2) { 57 | // TODO Auto-generated method stub 58 | 59 | } 60 | 61 | @Override 62 | public void onPageScrollStateChanged(int arg0) { 63 | // TODO Auto-generated method stub 64 | 65 | } 66 | }); 67 | } 68 | 69 | private void initViewPager() { 70 | if (imgsUrl != null && imgsUrl.size() != 0) { 71 | mAdapter = new ImagePagerAdapter(getApplicationContext(), imgsUrl); 72 | image_pager.setAdapter(mAdapter); 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/SettingsActivity.java: -------------------------------------------------------------------------------- 1 | package com.topnews; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.view.ViewPager; 5 | import android.view.View; 6 | import android.view.View.OnClickListener; 7 | import android.widget.Button; 8 | import android.widget.TextView; 9 | 10 | import com.topnews.base.BaseActivity; 11 | 12 | public class SettingsActivity extends BaseActivity implements OnClickListener{ 13 | TextView title; 14 | TextView right_text; 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | // TODO Auto-generated method stub 18 | super.onCreate(savedInstanceState); 19 | setContentView(R.layout.settings); 20 | initView(); 21 | initData(); 22 | } 23 | 24 | private void initView() { 25 | title = (TextView)findViewById(R.id.title); 26 | right_text = (TextView)findViewById(R.id.right_text); 27 | right_text.setVisibility(View.VISIBLE); 28 | right_text.setClickable(true); 29 | right_text.setOnClickListener(this); 30 | } 31 | 32 | private void initData() { 33 | title.setText("设置"); 34 | right_text.setText("意见反馈"); 35 | } 36 | 37 | @Override 38 | public void onBackPressed() { 39 | // TODO Auto-generated method stub 40 | super.onBackPressed(); 41 | // overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); 42 | overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right); 43 | } 44 | 45 | @Override 46 | public void onClick(View v) { 47 | switch (v.getId()) { 48 | case R.id.right_text: 49 | 50 | break; 51 | default: 52 | break; 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/Welcome.java: -------------------------------------------------------------------------------- 1 | package com.topnews; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | import android.view.View; 7 | import android.view.animation.AlphaAnimation; 8 | import android.view.animation.Animation; 9 | import android.view.animation.Animation.AnimationListener; 10 | 11 | public class Welcome extends Activity { 12 | private AlphaAnimation start_anima; 13 | View view; 14 | @Override 15 | protected void onCreate(Bundle savedInstanceState) { 16 | // TODO Auto-generated method stub 17 | super.onCreate(savedInstanceState); 18 | view = View.inflate(this, R.layout.welcome, null); 19 | setContentView(view); 20 | initView(); 21 | initData(); 22 | } 23 | private void initData() { 24 | start_anima = new AlphaAnimation(0.3f, 1.0f); 25 | start_anima.setDuration(2000); 26 | view.startAnimation(start_anima); 27 | start_anima.setAnimationListener(new AnimationListener() { 28 | 29 | @Override 30 | public void onAnimationStart(Animation animation) { 31 | // TODO Auto-generated method stub 32 | 33 | } 34 | 35 | @Override 36 | public void onAnimationRepeat(Animation animation) { 37 | // TODO Auto-generated method stub 38 | 39 | } 40 | 41 | @Override 42 | public void onAnimationEnd(Animation animation) { 43 | // TODO Auto-generated method stub 44 | redirectTo(); 45 | } 46 | }); 47 | } 48 | 49 | private void initView() { 50 | 51 | } 52 | 53 | private void redirectTo() { 54 | startActivity(new Intent(getApplicationContext(), MainActivity.class)); 55 | finish(); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/adapter/NewsFragmentPagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.topnews.adapter; 2 | 3 | import java.util.ArrayList; 4 | 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentManager; 7 | import android.support.v4.app.FragmentPagerAdapter; 8 | import android.support.v4.app.FragmentTransaction; 9 | import android.view.ViewGroup; 10 | 11 | public class NewsFragmentPagerAdapter extends FragmentPagerAdapter { 12 | private ArrayList fragments; 13 | private FragmentManager fm; 14 | 15 | public NewsFragmentPagerAdapter(FragmentManager fm) { 16 | super(fm); 17 | this.fm = fm; 18 | } 19 | 20 | public NewsFragmentPagerAdapter(FragmentManager fm, 21 | ArrayList fragments) { 22 | super(fm); 23 | this.fm = fm; 24 | this.fragments = fragments; 25 | } 26 | 27 | @Override 28 | public int getCount() { 29 | return fragments.size(); 30 | } 31 | 32 | @Override 33 | public Fragment getItem(int position) { 34 | return fragments.get(position); 35 | } 36 | 37 | @Override 38 | public int getItemPosition(Object object) { 39 | return POSITION_NONE; 40 | } 41 | 42 | public void setFragments(ArrayList fragments) { 43 | if (this.fragments != null) { 44 | FragmentTransaction ft = fm.beginTransaction(); 45 | for (Fragment f : this.fragments) { 46 | ft.remove(f); 47 | } 48 | ft.commit(); 49 | ft = null; 50 | fm.executePendingTransactions(); 51 | } 52 | this.fragments = fragments; 53 | notifyDataSetChanged(); 54 | } 55 | 56 | @Override 57 | public Object instantiateItem(ViewGroup container, final int position) { 58 | Object obj = super.instantiateItem(container, position); 59 | return obj; 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/adapter/OtherAdapter.java: -------------------------------------------------------------------------------- 1 | package com.topnews.adapter; 2 | 3 | import java.util.List; 4 | 5 | import com.topnews.R; 6 | import com.topnews.bean.ChannelItem; 7 | 8 | import android.content.Context; 9 | import android.util.Log; 10 | import android.view.LayoutInflater; 11 | import android.view.View; 12 | import android.view.ViewGroup; 13 | import android.widget.BaseAdapter; 14 | import android.widget.TextView; 15 | 16 | public class OtherAdapter extends BaseAdapter { 17 | private Context context; 18 | public List channelList; 19 | private TextView item_text; 20 | /** 是否可见 */ 21 | boolean isVisible = true; 22 | /** 要删除的position */ 23 | public int remove_position = -1; 24 | 25 | public OtherAdapter(Context context, List channelList) { 26 | this.context = context; 27 | this.channelList = channelList; 28 | } 29 | 30 | @Override 31 | public int getCount() { 32 | return channelList == null ? 0 : channelList.size(); 33 | } 34 | 35 | @Override 36 | public ChannelItem getItem(int position) { 37 | if (channelList != null && channelList.size() != 0) { 38 | return channelList.get(position); 39 | } 40 | return null; 41 | } 42 | 43 | @Override 44 | public long getItemId(int position) { 45 | return position; 46 | } 47 | 48 | @Override 49 | public View getView(int position, View convertView, ViewGroup parent) { 50 | View view = LayoutInflater.from(context).inflate(R.layout.channel_item, null); 51 | item_text = (TextView) view.findViewById(R.id.text_item); 52 | ChannelItem channel = getItem(position); 53 | item_text.setText(channel.getName()); 54 | if (!isVisible && (position == -1 + channelList.size())){ 55 | item_text.setText(""); 56 | } 57 | if(remove_position == position){ 58 | item_text.setText(""); 59 | } 60 | return view; 61 | } 62 | 63 | /** 获取频道列表 */ 64 | public List getChannnelLst() { 65 | return channelList; 66 | } 67 | 68 | /** 添加频道列表 */ 69 | public void addItem(ChannelItem channel) { 70 | channelList.add(channel); 71 | notifyDataSetChanged(); 72 | } 73 | 74 | /** 设置删除的position */ 75 | public void setRemove(int position) { 76 | remove_position = position; 77 | notifyDataSetChanged(); 78 | // notifyDataSetChanged(); 79 | } 80 | 81 | /** 删除频道列表 */ 82 | public void remove() { 83 | channelList.remove(remove_position); 84 | remove_position = -1; 85 | notifyDataSetChanged(); 86 | } 87 | /** 设置频道列表 */ 88 | public void setListDate(List list) { 89 | channelList = list; 90 | } 91 | 92 | /** 获取是否可见 */ 93 | public boolean isVisible() { 94 | return isVisible; 95 | } 96 | 97 | /** 设置是否可见 */ 98 | public void setVisible(boolean visible) { 99 | isVisible = visible; 100 | } 101 | } -------------------------------------------------------------------------------- /TopNews/src/com/topnews/app/AppApplication.java: -------------------------------------------------------------------------------- 1 | package com.topnews.app; 2 | 3 | import java.io.File; 4 | 5 | import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; 6 | import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; 7 | import com.nostra13.universalimageloader.core.ImageLoader; 8 | import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; 9 | import com.nostra13.universalimageloader.core.assist.QueueProcessingType; 10 | import com.nostra13.universalimageloader.utils.StorageUtils; 11 | import com.topnews.db.SQLHelper; 12 | 13 | import android.app.Application; 14 | import android.content.Context; 15 | import android.util.Log; 16 | 17 | public class AppApplication extends Application { 18 | private static AppApplication mAppApplication; 19 | private SQLHelper sqlHelper; 20 | 21 | @Override 22 | public void onCreate() { 23 | // TODO Auto-generated method stub 24 | super.onCreate(); 25 | initImageLoader(getApplicationContext()); 26 | mAppApplication = this; 27 | } 28 | 29 | /** 获取Application */ 30 | public static AppApplication getApp() { 31 | return mAppApplication; 32 | } 33 | 34 | /** 获取数据库Helper */ 35 | public SQLHelper getSQLHelper() { 36 | if (sqlHelper == null) 37 | sqlHelper = new SQLHelper(mAppApplication); 38 | return sqlHelper; 39 | } 40 | 41 | @Override 42 | public void onTerminate() { 43 | // TODO Auto-generated method stub 44 | if (sqlHelper != null) 45 | sqlHelper.close(); 46 | super.onTerminate(); 47 | //整体摧毁的时候调用这个方法 48 | } 49 | /** 初始化ImageLoader */ 50 | public static void initImageLoader(Context context) { 51 | File cacheDir = StorageUtils.getOwnCacheDirectory(context, "topnews/Cache");//获取到缓存的目录地址 52 | Log.d("cacheDir", cacheDir.getPath()); 53 | //创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制),这个可以设定在APPLACATION里面,设置为全局的配置参数 54 | ImageLoaderConfiguration config = new ImageLoaderConfiguration 55 | .Builder(context) 56 | //.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽 57 | //.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) // Can slow ImageLoader, use it carefully (Better don't use it)设置缓存的详细信息,最好不要设置这个 58 | .threadPoolSize(3)//线程池内加载的数量 59 | .threadPriority(Thread.NORM_PRIORITY - 2) 60 | .denyCacheImageMultipleSizesInMemory() 61 | //.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation你可以通过自己的内存缓存实现 62 | //.memoryCacheSize(2 * 1024 * 1024) 63 | ///.discCacheSize(50 * 1024 * 1024) 64 | .discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密 65 | //.discCacheFileNameGenerator(new HashCodeFileNameGenerator())//将保存的时候的URI名称用HASHCODE加密 66 | .tasksProcessingOrder(QueueProcessingType.LIFO) 67 | //.discCacheFileCount(100) //缓存的File数量 68 | .discCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径 69 | //.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) 70 | //.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间 71 | .writeDebugLogs() // Remove for release app 72 | .build(); 73 | // Initialize ImageLoader with configuration. 74 | ImageLoader.getInstance().init(config);//全局初始化此配置 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/base/BaseActivity.java: -------------------------------------------------------------------------------- 1 | package com.topnews.base; 2 | 3 | import com.topnews.listener.BackGestureListener; 4 | 5 | import android.app.Activity; 6 | import android.os.Bundle; 7 | import android.view.GestureDetector; 8 | import android.view.MotionEvent; 9 | import android.view.View; 10 | 11 | public class BaseActivity extends Activity { 12 | 13 | /** 手势监听 */ 14 | GestureDetector mGestureDetector; 15 | /** 是否需要监听手势关闭功能 */ 16 | private boolean mNeedBackGesture = false; 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | // TODO Auto-generated method stub 20 | super.onCreate(savedInstanceState); 21 | initGestureDetector(); 22 | } 23 | 24 | private void initGestureDetector() { 25 | if (mGestureDetector == null) { 26 | mGestureDetector = new GestureDetector(getApplicationContext(), 27 | new BackGestureListener(this)); 28 | } 29 | } 30 | 31 | @Override 32 | public boolean dispatchTouchEvent(MotionEvent ev) { 33 | // TODO Auto-generated method stub 34 | if(mNeedBackGesture){ 35 | return mGestureDetector.onTouchEvent(ev) || super.dispatchTouchEvent(ev); 36 | } 37 | return super.dispatchTouchEvent(ev); 38 | } 39 | 40 | /* 41 | * 设置是否进行手势监听 42 | */ 43 | public void setNeedBackGesture(boolean mNeedBackGesture){ 44 | this.mNeedBackGesture = mNeedBackGesture; 45 | } 46 | 47 | /* 48 | * 返回 49 | */ 50 | public void doBack(View view) { 51 | onBackPressed(); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/bean/ChannelItem.java: -------------------------------------------------------------------------------- 1 | package com.topnews.bean; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * ITEM的对应可序化队列属性 7 | * */ 8 | public class ChannelItem implements Serializable { 9 | /** 10 | * 11 | */ 12 | private static final long serialVersionUID = -6465237897027410019L; 13 | /** 14 | * 栏目对应ID 15 | * */ 16 | public Integer id; 17 | /** 18 | * 栏目对应NAME 19 | * */ 20 | public String name; 21 | /** 22 | * 栏目在整体中的排序顺序 rank 23 | * */ 24 | public Integer orderId; 25 | /** 26 | * 栏目是否选中 27 | * */ 28 | public Integer selected; 29 | 30 | public ChannelItem() { 31 | } 32 | 33 | public ChannelItem(int id, String name, int orderId,int selected) { 34 | this.id = Integer.valueOf(id); 35 | this.name = name; 36 | this.orderId = Integer.valueOf(orderId); 37 | this.selected = Integer.valueOf(selected); 38 | } 39 | 40 | public int getId() { 41 | return this.id.intValue(); 42 | } 43 | 44 | public String getName() { 45 | return this.name; 46 | } 47 | 48 | public int getOrderId() { 49 | return this.orderId.intValue(); 50 | } 51 | 52 | public Integer getSelected() { 53 | return this.selected; 54 | } 55 | 56 | public void setId(int paramInt) { 57 | this.id = Integer.valueOf(paramInt); 58 | } 59 | 60 | public void setName(String paramString) { 61 | this.name = paramString; 62 | } 63 | 64 | public void setOrderId(int paramInt) { 65 | this.orderId = Integer.valueOf(paramInt); 66 | } 67 | 68 | public void setSelected(Integer paramInteger) { 69 | this.selected = paramInteger; 70 | } 71 | 72 | public String toString() { 73 | return "ChannelItem [id=" + this.id + ", name=" + this.name 74 | + ", selected=" + this.selected + "]"; 75 | } 76 | } -------------------------------------------------------------------------------- /TopNews/src/com/topnews/bean/CityEntity.java: -------------------------------------------------------------------------------- 1 | package com.topnews.bean; 2 | 3 | import java.io.Serializable; 4 | 5 | /* 6 | * 城市实体类 7 | */ 8 | public class CityEntity implements Serializable{ 9 | /** 10 | * 11 | */ 12 | private static final long serialVersionUID = 2005295701925847160L; 13 | /* 城市ID */ 14 | public Integer id; 15 | /* 城市NAME */ 16 | public String name; 17 | /* 城市拼音首字母 */ 18 | public char pinyin; 19 | 20 | public CityEntity(Integer id, String name, char pinyin) { 21 | this.id = id; 22 | this.name = name; 23 | this.pinyin = pinyin; 24 | } 25 | 26 | public Integer getId() { 27 | return id; 28 | } 29 | 30 | public void setId(Integer id) { 31 | this.id = id; 32 | } 33 | 34 | public String getName() { 35 | return name; 36 | } 37 | 38 | public void setName(String name) { 39 | this.name = name; 40 | } 41 | 42 | public char getPinyin() { 43 | return pinyin; 44 | } 45 | 46 | public void setPinyin(char pinyin) { 47 | this.pinyin = pinyin; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/dao/ChannelDaoInface.java: -------------------------------------------------------------------------------- 1 | package com.topnews.dao; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import com.topnews.bean.ChannelItem; 7 | 8 | import android.content.ContentValues; 9 | 10 | public interface ChannelDaoInface { 11 | public boolean addCache(ChannelItem item); 12 | 13 | public boolean deleteCache(String whereClause, String[] whereArgs); 14 | 15 | public boolean updateCache(ContentValues values, String whereClause, 16 | String[] whereArgs); 17 | 18 | public Map viewCache(String selection, 19 | String[] selectionArgs); 20 | 21 | public List> listCache(String selection, 22 | String[] selectionArgs); 23 | 24 | public void clearFeedTable(); 25 | } 26 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/db/DBUtil.java: -------------------------------------------------------------------------------- 1 | package com.topnews.db; 2 | 3 | import android.content.ContentValues; 4 | import android.content.Context; 5 | import android.database.Cursor; 6 | import android.database.sqlite.SQLiteDatabase; 7 | 8 | public class DBUtil { 9 | private static DBUtil mInstance; 10 | private Context mContext; 11 | private SQLHelper mSQLHelp; 12 | private SQLiteDatabase mSQLiteDatabase; 13 | 14 | private DBUtil(Context context) { 15 | mContext = context; 16 | mSQLHelp = new SQLHelper(context); 17 | mSQLiteDatabase = mSQLHelp.getWritableDatabase(); 18 | } 19 | /** 20 | * 初始化数据库操作DBUtil类 21 | */ 22 | public static DBUtil getInstance(Context context) { 23 | if (mInstance == null) { 24 | mInstance = new DBUtil(context); 25 | } 26 | return mInstance; 27 | } 28 | /** 29 | * 关闭数据库 30 | */ 31 | public void close() { 32 | mSQLHelp.close(); 33 | mSQLHelp = null; 34 | mSQLiteDatabase.close(); 35 | mSQLiteDatabase = null; 36 | mInstance = null; 37 | } 38 | 39 | /** 40 | * 添加数据 41 | */ 42 | public void insertData(ContentValues values) { 43 | mSQLiteDatabase.insert(SQLHelper.TABLE_CHANNEL, null, values); 44 | } 45 | 46 | /** 47 | * 更新数据 48 | * 49 | * @param values 50 | * @param whereClause 51 | * @param whereArgs 52 | */ 53 | public void updateData(ContentValues values, String whereClause, 54 | String[] whereArgs) { 55 | mSQLiteDatabase.update(SQLHelper.TABLE_CHANNEL, values, whereClause, 56 | whereArgs); 57 | } 58 | 59 | /** 60 | * 删除数据 61 | * 62 | * @param whereClause 63 | * @param whereArgs 64 | */ 65 | public void deleteData(String whereClause, String[] whereArgs) { 66 | mSQLiteDatabase 67 | .delete(SQLHelper.TABLE_CHANNEL, whereClause, whereArgs); 68 | } 69 | 70 | /** 71 | * 查询数据 72 | * 73 | * @param columns 74 | * @param selection 75 | * @param selectionArgs 76 | * @param groupBy 77 | * @param having 78 | * @param orderBy 79 | * @return 80 | */ 81 | public Cursor selectData(String[] columns, String selection, 82 | String[] selectionArgs, String groupBy, String having, 83 | String orderBy) { 84 | Cursor cursor = mSQLiteDatabase.query(SQLHelper.TABLE_CHANNEL,columns, selection, selectionArgs, groupBy, having, orderBy); 85 | return cursor; 86 | } 87 | } -------------------------------------------------------------------------------- /TopNews/src/com/topnews/db/SQLHelper.java: -------------------------------------------------------------------------------- 1 | package com.topnews.db; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.database.sqlite.SQLiteDatabase.CursorFactory; 6 | import android.database.sqlite.SQLiteOpenHelper; 7 | 8 | public class SQLHelper extends SQLiteOpenHelper { 9 | public static final String DB_NAME = "database.db";// 数据库名称 10 | public static final int VERSION = 1; 11 | 12 | public static final String TABLE_CHANNEL = "channel";//数据表 13 | 14 | public static final String ID = "id";// 15 | public static final String NAME = "name"; 16 | public static final String ORDERID = "orderId"; 17 | public static final String SELECTED = "selected"; 18 | private Context context; 19 | public SQLHelper(Context context) { 20 | super(context, DB_NAME, null, VERSION); 21 | this.context = context; 22 | } 23 | 24 | public Context getContext(){ 25 | return context; 26 | } 27 | 28 | @Override 29 | public void onCreate(SQLiteDatabase db) { 30 | // TODO 创建数据库后,对数据库的操作 31 | String sql = "create table if not exists "+TABLE_CHANNEL + 32 | "(_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 33 | ID + " INTEGER , " + 34 | NAME + " TEXT , " + 35 | ORDERID + " INTEGER , " + 36 | SELECTED + " SELECTED)"; 37 | db.execSQL(sql); 38 | } 39 | 40 | @Override 41 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 42 | // TODO 更改数据库版本的操作 43 | onCreate(db); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/listener/BackGestureListener.java: -------------------------------------------------------------------------------- 1 | package com.topnews.listener; 2 | 3 | import com.topnews.base.BaseActivity; 4 | 5 | import android.app.Activity; 6 | import android.view.GestureDetector.OnGestureListener; 7 | import android.view.MotionEvent; 8 | /** 9 | * 返回手势监听接口 10 | */ 11 | public class BackGestureListener implements OnGestureListener { 12 | BaseActivity activity; 13 | 14 | public BackGestureListener(BaseActivity activity) { 15 | this.activity = activity; 16 | } 17 | 18 | @Override 19 | public boolean onDown(MotionEvent e) { 20 | // TODO Auto-generated method stub 21 | return false; 22 | } 23 | 24 | @Override 25 | public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 26 | float velocityY) { 27 | // TODO Auto-generated method stub 28 | return false; 29 | } 30 | 31 | @Override 32 | public void onLongPress(MotionEvent e) { 33 | // TODO Auto-generated method stub 34 | 35 | } 36 | 37 | @Override 38 | public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, 39 | float distanceY) { 40 | if ((e2.getX() - e1.getX()) >100 && Math.abs(e1.getY() - e2.getY()) < 60 ) { 41 | activity.onBackPressed(); 42 | return true; 43 | } 44 | return false; 45 | } 46 | 47 | @Override 48 | public void onShowPress(MotionEvent e) { 49 | // TODO Auto-generated method stub 50 | 51 | } 52 | 53 | @Override 54 | public boolean onSingleTapUp(MotionEvent e) { 55 | // TODO Auto-generated method stub 56 | return false; 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/service/NewsDetailsService.java: -------------------------------------------------------------------------------- 1 | package com.topnews.service; 2 | 3 | import java.io.IOException; 4 | import org.jsoup.Jsoup; 5 | import org.jsoup.nodes.Document; 6 | import org.jsoup.nodes.Element; 7 | 8 | import android.text.TextUtils; 9 | 10 | public class NewsDetailsService { 11 | public static String getNewsDetails(String url, String news_title, 12 | String news_date) { 13 | Document document = null; 14 | String data = "" + 15 | "

" + news_title + "

"; 16 | data = data + "

" 17 | + "" 18 | + news_date 19 | + "" 20 | + "

"; 21 | data = data + "
"; 22 | try { 23 | document = Jsoup.connect(url).timeout(9000).get(); 24 | Element element = null; 25 | if (TextUtils.isEmpty(url)) { 26 | data = ""; 27 | element = document.getElementById("memberArea"); 28 | } else { 29 | element = document.getElementById("artibody"); 30 | } 31 | if (element != null) { 32 | data = data + element.toString(); 33 | } 34 | data = data + ""; 35 | } catch (IOException e) { 36 | e.printStackTrace(); 37 | } 38 | return data; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/tool/BaseTools.java: -------------------------------------------------------------------------------- 1 | package com.topnews.tool; 2 | 3 | import android.app.Activity; 4 | import android.util.DisplayMetrics; 5 | 6 | public class BaseTools { 7 | 8 | /** 获取屏幕的宽度 */ 9 | public final static int getWindowsWidth(Activity activity) { 10 | DisplayMetrics dm = new DisplayMetrics(); 11 | activity.getWindowManager().getDefaultDisplay().getMetrics(dm); 12 | return dm.widthPixels; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/tool/DataTools.java: -------------------------------------------------------------------------------- 1 | package com.topnews.tool; 2 | 3 | import android.content.Context; 4 | 5 | public class DataTools { 6 | /** 7 | * dip转为 px 8 | */ 9 | public static int dip2px(Context context, float dipValue) { 10 | final float scale = context.getResources().getDisplayMetrics().density; 11 | return (int) (dipValue * scale + 0.5f); 12 | } 13 | 14 | /** 15 | * px 转为 dip 16 | */ 17 | public static int px2dip(Context context, float pxValue) { 18 | final float scale = context.getResources().getDisplayMetrics().density; 19 | return (int) (pxValue / scale + 0.5f); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/tool/Options.java: -------------------------------------------------------------------------------- 1 | package com.topnews.tool; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import com.nostra13.universalimageloader.core.DisplayImageOptions; 6 | import com.nostra13.universalimageloader.core.assist.ImageScaleType; 7 | import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; 8 | import com.topnews.R; 9 | 10 | public class Options { 11 | /** 新闻列表中用到的图片加载配置 */ 12 | public static DisplayImageOptions getListOptions() { 13 | DisplayImageOptions options = new DisplayImageOptions.Builder() 14 | // // 设置图片在下载期间显示的图片 15 | // .showImageOnLoading(R.drawable.small_image_holder_listpage) 16 | // // 设置图片Uri为空或是错误的时候显示的图片 17 | // .showImageForEmptyUri(R.drawable.small_image_holder_listpage) 18 | // // 设置图片加载/解码过程中错误时候显示的图片 19 | // .showImageOnFail(R.drawable.small_image_holder_listpage) 20 | .cacheInMemory(true) 21 | // 设置下载的图片是否缓存在内存中 22 | .cacheOnDisc(true) 23 | // 设置下载的图片是否缓存在SD卡中 24 | .considerExifParams(true) 25 | .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)// 设置图片以如何的编码方式显示 26 | .bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型 27 | // .decodingOptions(android.graphics.BitmapFactory.Options 28 | // decodingOptions)//设置图片的解码配置 29 | .considerExifParams(true) 30 | // 设置图片下载前的延迟 31 | // .delayBeforeLoading(int delayInMillis)//int 32 | // delayInMillis为你设置的延迟时间 33 | // 设置图片加入缓存前,对bitmap进行设置 34 | // 。preProcessor(BitmapProcessor preProcessor) 35 | .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位 36 | // .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角,弧度为多少 37 | .displayer(new FadeInBitmapDisplayer(100))// 淡入 38 | .build(); 39 | return options; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/ColumnHorizontalScrollView.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.util.AttributeSet; 6 | import android.view.View; 7 | import android.widget.HorizontalScrollView; 8 | import android.widget.ImageView; 9 | 10 | public class ColumnHorizontalScrollView extends HorizontalScrollView { 11 | /** 传入整体布局 */ 12 | private View ll_content; 13 | /** 传入更多栏目选择布局 */ 14 | private View ll_more; 15 | /** 传入拖动栏布局 */ 16 | private View rl_column; 17 | /** 左阴影图片 */ 18 | private ImageView leftImage; 19 | /** 右阴影图片 */ 20 | private ImageView rightImage; 21 | /** 屏幕宽度 */ 22 | private int mScreenWitdh = 0; 23 | /** 父类的活动activity */ 24 | private Activity activity; 25 | 26 | public ColumnHorizontalScrollView(Context context) { 27 | super(context); 28 | } 29 | 30 | public ColumnHorizontalScrollView(Context context, AttributeSet attrs) { 31 | super(context, attrs); 32 | } 33 | 34 | public ColumnHorizontalScrollView(Context context, AttributeSet attrs, 35 | int defStyle) { 36 | super(context, attrs, defStyle); 37 | } 38 | /** 39 | * 在拖动的时候执行 40 | * */ 41 | @Override 42 | protected void onScrollChanged(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 43 | // TODO Auto-generated method stub 44 | super.onScrollChanged(paramInt1, paramInt2, paramInt3, paramInt4); 45 | shade_ShowOrHide(); 46 | if(!activity.isFinishing() && ll_content !=null && leftImage!=null && rightImage!=null && ll_more!=null && rl_column !=null){ 47 | if(ll_content.getWidth() <= mScreenWitdh){ 48 | leftImage.setVisibility(View.GONE); 49 | rightImage.setVisibility(View.GONE); 50 | } 51 | }else{ 52 | return; 53 | } 54 | if(paramInt1 ==0){ 55 | leftImage.setVisibility(View.GONE); 56 | rightImage.setVisibility(View.VISIBLE); 57 | return; 58 | } 59 | if(ll_content.getWidth() - paramInt1 + ll_more.getWidth() + rl_column.getLeft() == mScreenWitdh){ 60 | leftImage.setVisibility(View.VISIBLE); 61 | rightImage.setVisibility(View.GONE); 62 | return; 63 | } 64 | leftImage.setVisibility(View.VISIBLE); 65 | rightImage.setVisibility(View.VISIBLE); 66 | } 67 | /** 68 | * 传入父类布局中的资源文件 69 | * */ 70 | public void setParam(Activity activity, int mScreenWitdh,View paramView1,ImageView paramView2, ImageView paramView3 ,View paramView4,View paramView5){ 71 | this.activity = activity; 72 | this.mScreenWitdh = mScreenWitdh; 73 | ll_content = paramView1; 74 | leftImage = paramView2; 75 | rightImage = paramView3; 76 | ll_more = paramView4; 77 | rl_column = paramView5; 78 | } 79 | /** 80 | * 判断左右阴影的显示隐藏效果 81 | * */ 82 | public void shade_ShowOrHide() { 83 | if (!activity.isFinishing() && ll_content != null) { 84 | measure(0, 0); 85 | //如果整体宽度小于屏幕宽度的话,那左右阴影都隐藏 86 | if (mScreenWitdh >= getMeasuredWidth()) { 87 | leftImage.setVisibility(View.GONE); 88 | rightImage.setVisibility(View.GONE); 89 | } 90 | } else { 91 | return; 92 | } 93 | //如果滑动在最左边时候,左边阴影隐藏,右边显示 94 | if (getLeft() == 0) { 95 | leftImage.setVisibility(View.GONE); 96 | rightImage.setVisibility(View.VISIBLE); 97 | return; 98 | } 99 | //如果滑动在最右边时候,左边阴影显示,右边隐藏 100 | if (getRight() == getMeasuredWidth() - mScreenWitdh) { 101 | leftImage.setVisibility(View.VISIBLE); 102 | rightImage.setVisibility(View.GONE); 103 | return; 104 | } 105 | //否则,说明在中间位置,左、右阴影都显示 106 | leftImage.setVisibility(View.VISIBLE); 107 | rightImage.setVisibility(View.VISIBLE); 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/DrawerView.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.view.View; 6 | import android.view.View.OnClickListener; 7 | import android.widget.CompoundButton; 8 | import android.widget.CompoundButton.OnCheckedChangeListener; 9 | import android.widget.RelativeLayout; 10 | import android.widget.TextView; 11 | import android.widget.Toast; 12 | 13 | import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; 14 | import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.OnClosedListener; 15 | import com.topnews.R; 16 | import com.topnews.SettingsActivity; 17 | /** 18 | * 自定义SlidingMenu 测拉菜单类 19 | * */ 20 | public class DrawerView implements OnClickListener{ 21 | private final Activity activity; 22 | SlidingMenu localSlidingMenu; 23 | private SwitchButton night_mode_btn; 24 | private TextView night_mode_text; 25 | private RelativeLayout setting_btn; 26 | public DrawerView(Activity activity) { 27 | this.activity = activity; 28 | } 29 | 30 | public SlidingMenu initSlidingMenu() { 31 | localSlidingMenu = new SlidingMenu(activity); 32 | localSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);//设置左右滑菜单 33 | localSlidingMenu.setTouchModeAbove(SlidingMenu.SLIDING_WINDOW);//设置要使菜单滑动,触碰屏幕的范围 34 | // localSlidingMenu.setTouchModeBehind(SlidingMenu.SLIDING_CONTENT);//设置了这个会获取不到菜单里面的焦点,所以先注释掉 35 | localSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度 36 | localSlidingMenu.setShadowDrawable(R.drawable.shadow);//设置阴影图片 37 | localSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度 38 | localSlidingMenu.setFadeDegree(0.35F);//SlidingMenu滑动时的渐变程度 39 | localSlidingMenu.attachToActivity(activity, SlidingMenu.RIGHT);//使SlidingMenu附加在Activity右边 40 | // localSlidingMenu.setBehindWidthRes(R.dimen.left_drawer_avatar_size);//设置SlidingMenu菜单的宽度 41 | localSlidingMenu.setMenu(R.layout.left_drawer_fragment);//设置menu的布局文件 42 | // localSlidingMenu.toggle();//动态判断自动关闭或开启SlidingMenu 43 | localSlidingMenu.setSecondaryMenu(R.layout.profile_drawer_right); 44 | localSlidingMenu.setSecondaryShadowDrawable(R.drawable.shadowright); 45 | localSlidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() { 46 | public void onOpened() { 47 | 48 | } 49 | }); 50 | localSlidingMenu.setOnClosedListener(new OnClosedListener() { 51 | 52 | @Override 53 | public void onClosed() { 54 | // TODO Auto-generated method stub 55 | 56 | } 57 | }); 58 | initView(); 59 | return localSlidingMenu; 60 | } 61 | 62 | private void initView() { 63 | night_mode_btn = (SwitchButton)localSlidingMenu.findViewById(R.id.night_mode_btn); 64 | night_mode_text = (TextView)localSlidingMenu.findViewById(R.id.night_mode_text); 65 | night_mode_btn.setOnCheckedChangeListener(new OnCheckedChangeListener() { 66 | 67 | @Override 68 | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 69 | // TODO Auto-generated method stub 70 | if(isChecked){ 71 | night_mode_text.setText(activity.getResources().getString(R.string.action_night_mode)); 72 | }else{ 73 | night_mode_text.setText(activity.getResources().getString(R.string.action_day_mode)); 74 | } 75 | } 76 | }); 77 | night_mode_btn.setChecked(false); 78 | if(night_mode_btn.isChecked()){ 79 | night_mode_text.setText(activity.getResources().getString(R.string.action_night_mode)); 80 | }else{ 81 | night_mode_text.setText(activity.getResources().getString(R.string.action_day_mode)); 82 | } 83 | 84 | setting_btn =(RelativeLayout)localSlidingMenu.findViewById(R.id.setting_btn); 85 | setting_btn.setOnClickListener(this); 86 | } 87 | 88 | @Override 89 | public void onClick(View v) { 90 | switch (v.getId()) { 91 | case R.id.setting_btn: 92 | activity.startActivity(new Intent(activity,SettingsActivity.class)); 93 | activity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); 94 | break; 95 | 96 | default: 97 | break; 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/HeadListView.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view; 2 | 3 | import android.content.Context; 4 | import android.graphics.Canvas; 5 | import android.util.AttributeSet; 6 | import android.view.View; 7 | import android.widget.ListAdapter; 8 | import android.widget.ListView; 9 | /** 10 | * 重写的ListView,让每条新闻的时间显示 11 | */ 12 | public class HeadListView extends ListView { 13 | 14 | public interface HeaderAdapter { 15 | public static final int HEADER_GONE = 0; 16 | public static final int HEADER_VISIBLE = 1; 17 | public static final int HEADER_PUSHED_UP = 2; 18 | 19 | int getHeaderState(int position); 20 | 21 | void configureHeader(View header, int position, int alpha); 22 | } 23 | 24 | private static final int MAX_ALPHA = 255; 25 | 26 | private HeaderAdapter mAdapter; 27 | private View mHeaderView; 28 | private boolean mHeaderViewVisible; 29 | private int mHeaderViewWidth; 30 | private int mHeaderViewHeight; 31 | 32 | public HeadListView(Context context) { 33 | super(context); 34 | } 35 | 36 | public HeadListView(Context context, AttributeSet attrs) { 37 | super(context, attrs); 38 | } 39 | 40 | public HeadListView(Context context, AttributeSet attrs, int defStyle) { 41 | super(context, attrs, defStyle); 42 | } 43 | 44 | protected void onLayout(boolean changed, int left, int top, int right, 45 | int bottom) { 46 | super.onLayout(changed, left, top, right, bottom); 47 | if (mHeaderView != null) { 48 | mHeaderView.layout(0, 0, mHeaderViewWidth, mHeaderViewHeight); 49 | configureHeaderView(getFirstVisiblePosition()); 50 | } 51 | } 52 | 53 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 54 | super.onMeasure(widthMeasureSpec, heightMeasureSpec); 55 | if (mHeaderView != null) { 56 | measureChild(mHeaderView, widthMeasureSpec, heightMeasureSpec); 57 | mHeaderViewWidth = mHeaderView.getMeasuredWidth(); 58 | mHeaderViewHeight = mHeaderView.getMeasuredHeight(); 59 | } 60 | } 61 | 62 | public void setPinnedHeaderView(View view) { 63 | mHeaderView = view; 64 | if (mHeaderView != null) { 65 | //listview的上边和下边有黑色的阴影。xml中: android:fadingEdge="none" 66 | setFadingEdgeLength(0); 67 | } 68 | requestLayout(); 69 | } 70 | 71 | public void setAdapter(ListAdapter adapter) { 72 | super.setAdapter(adapter); 73 | mAdapter = (HeaderAdapter) adapter; 74 | } 75 | 76 | public void configureHeaderView(int position) { 77 | if (mHeaderView == null) { 78 | return; 79 | } 80 | int state = mAdapter.getHeaderState(position); 81 | switch (state) { 82 | case HeaderAdapter.HEADER_GONE: { 83 | mHeaderViewVisible = false; 84 | break; 85 | } 86 | 87 | case HeaderAdapter.HEADER_VISIBLE: { 88 | mAdapter.configureHeader(mHeaderView, position, MAX_ALPHA); 89 | if (mHeaderView.getTop() != 0) { 90 | mHeaderView.layout(0, 0, mHeaderViewWidth, mHeaderViewHeight); 91 | } 92 | mHeaderViewVisible = true; 93 | break; 94 | } 95 | 96 | case HeaderAdapter.HEADER_PUSHED_UP: { 97 | View firstView = getChildAt(0); 98 | int bottom = firstView.getBottom(); 99 | int headerHeight = mHeaderView.getHeight(); 100 | int y; 101 | int alpha; 102 | if (bottom < headerHeight) { 103 | y = (bottom - headerHeight); 104 | alpha = MAX_ALPHA * (headerHeight + y) / headerHeight; 105 | } else { 106 | y = 0; 107 | alpha = MAX_ALPHA; 108 | } 109 | mAdapter.configureHeader(mHeaderView, position, alpha); 110 | if (mHeaderView.getTop() != y) { 111 | mHeaderView.layout(0, y, mHeaderViewWidth, mHeaderViewHeight + y); 112 | } 113 | mHeaderViewVisible = true; 114 | break; 115 | } 116 | } 117 | } 118 | 119 | protected void dispatchDraw(Canvas canvas) { 120 | super.dispatchDraw(canvas); 121 | if (mHeaderViewVisible) { 122 | drawChild(canvas, mHeaderView, getDrawingTime()); 123 | } 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/OtherGridView.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.GridView; 6 | 7 | public class OtherGridView extends GridView { 8 | 9 | public OtherGridView(Context paramContext, AttributeSet paramAttributeSet) { 10 | super(paramContext, paramAttributeSet); 11 | } 12 | 13 | @Override 14 | public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 15 | int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, 16 | MeasureSpec.AT_MOST); 17 | super.onMeasure(widthMeasureSpec, expandSpec); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/ToastDialog.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view; 2 | 3 | import android.R; 4 | import android.app.Dialog; 5 | import android.content.Context; 6 | import android.view.LayoutInflater; 7 | 8 | public class ToastDialog extends Dialog{ 9 | 10 | public ToastDialog(Context context, boolean cancelable, 11 | OnCancelListener cancelListener) { 12 | super(context, cancelable, cancelListener); 13 | init(context); 14 | } 15 | 16 | public ToastDialog(Context context, int theme) { 17 | super(context, theme); 18 | // TODO Auto-generated constructor stub 19 | } 20 | 21 | public ToastDialog(Context context) { 22 | super(context); 23 | // TODO Auto-generated constructor stub 24 | } 25 | 26 | private void init(Context context) { 27 | LayoutInflater inflater = LayoutInflater.from(context); 28 | // View view = inflater.inflate(R.layout., null); 29 | // this. 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/TopToastView.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view; 2 | 3 | import android.content.Context; 4 | import android.view.Gravity; 5 | import android.view.ViewGroup.LayoutParams; 6 | import android.widget.ImageView; 7 | import android.widget.LinearLayout; 8 | import android.widget.Toast; 9 | /** 10 | * 头部有新咨询的Toast提示 11 | * */ 12 | public class TopToastView { 13 | /** 14 | * 初始化Toast提示,并show 15 | * */ 16 | public static void initToast(Context context,String top_hint,int img_res){ 17 | Toast topToast = Toast.makeText(context, top_hint, Toast.LENGTH_LONG); 18 | topToast.setGravity(Gravity.CENTER|Gravity.TOP, 0, 0); 19 | LinearLayout ll_bg = (LinearLayout) topToast.getView(); 20 | ImageView img_bg = new ImageView(context); 21 | img_bg.setImageResource(img_res); 22 | ll_bg.addView(img_bg , 0); 23 | topToast.show(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/imageshow/EclairMotionEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2012 Robert Foss 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the Software without restriction, including without limitation 6 | the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to 7 | permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in all copies or substantial 10 | portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 13 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 14 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 15 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH 16 | THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | */ 18 | package com.topnews.view.imageshow; 19 | 20 | import android.view.MotionEvent; 21 | 22 | public class EclairMotionEvent extends WrapMotionEvent { 23 | 24 | protected EclairMotionEvent(MotionEvent event) { 25 | super(event); 26 | } 27 | 28 | public float getX(int pointerIndex) { 29 | return event.getX(pointerIndex); 30 | } 31 | 32 | public float getY(int pointerIndex) { 33 | return event.getY(pointerIndex); 34 | } 35 | 36 | public int getPointerCount() { 37 | return event.getPointerCount(); 38 | } 39 | 40 | public int getPointerId(int pointerIndex) { 41 | return event.getPointerId(pointerIndex); 42 | } 43 | } -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/imageshow/ImageShowViewPager.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view.imageshow; 2 | 3 | 4 | import android.content.Context; 5 | import android.graphics.PointF; 6 | import android.support.v4.view.ViewPager; 7 | import android.util.AttributeSet; 8 | import android.view.MotionEvent; 9 | import android.view.View; 10 | import android.widget.ImageView; 11 | 12 | public class ImageShowViewPager extends ViewPager { 13 | PointF last; 14 | public TouchImageView mCurrentView; 15 | 16 | public ImageShowViewPager(Context context) { 17 | super(context); 18 | } 19 | 20 | public ImageShowViewPager(Context context, AttributeSet attrs) { 21 | super(context, attrs); 22 | } 23 | 24 | private float[] handleMotionEvent(MotionEvent event) { 25 | switch (event.getAction() & MotionEvent.ACTION_MASK) { 26 | case MotionEvent.ACTION_DOWN: 27 | last = new PointF(event.getX(0), event.getY(0)); 28 | break; 29 | case MotionEvent.ACTION_MOVE: 30 | case MotionEvent.ACTION_UP: 31 | PointF curr = new PointF(event.getX(0), event.getY(0)); 32 | return new float[] { curr.x - last.x, curr.y - last.y }; 33 | 34 | } 35 | return null; 36 | } 37 | 38 | @Override 39 | public boolean onTouchEvent(MotionEvent event) { 40 | if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) { 41 | super.onTouchEvent(event); 42 | } 43 | 44 | float[] difference = handleMotionEvent(event); 45 | 46 | if (mCurrentView.pagerCanScroll()) { 47 | return super.onTouchEvent(event); 48 | } else { 49 | if (difference != null && mCurrentView.onRightSide 50 | && difference[0] < 0) // move 51 | // right 52 | { 53 | return super.onTouchEvent(event); 54 | } 55 | if (difference != null && mCurrentView.onLeftSide 56 | && difference[0] > 0) // move 57 | // left 58 | { 59 | return super.onTouchEvent(event); 60 | } 61 | if (difference == null 62 | && (mCurrentView.onLeftSide || mCurrentView.onRightSide)) { 63 | return super.onTouchEvent(event); 64 | } 65 | } 66 | 67 | return false; 68 | } 69 | 70 | @Override 71 | public boolean onInterceptTouchEvent(MotionEvent event) { 72 | if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) { 73 | super.onInterceptTouchEvent(event); 74 | } 75 | 76 | float[] difference = handleMotionEvent(event); 77 | 78 | if (mCurrentView.pagerCanScroll()) { 79 | return super.onInterceptTouchEvent(event); 80 | } else { 81 | if (difference != null && mCurrentView.onRightSide 82 | && difference[0] < 0) // move 83 | // right 84 | { 85 | return super.onInterceptTouchEvent(event); 86 | } 87 | if (difference != null && mCurrentView.onLeftSide 88 | && difference[0] > 0) // move 89 | // left 90 | { 91 | return super.onInterceptTouchEvent(event); 92 | } 93 | if (difference == null 94 | && (mCurrentView.onLeftSide || mCurrentView.onRightSide)) { 95 | return super.onInterceptTouchEvent(event); 96 | } 97 | } 98 | return false; 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/imageshow/TouchImageView.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/TopNews/src/com/topnews/view/imageshow/TouchImageView.java -------------------------------------------------------------------------------- /TopNews/src/com/topnews/view/imageshow/WrapMotionEvent.java: -------------------------------------------------------------------------------- 1 | package com.topnews.view.imageshow; 2 | 3 | import android.view.MotionEvent; 4 | 5 | public class WrapMotionEvent { 6 | protected MotionEvent event; 7 | 8 | protected WrapMotionEvent(MotionEvent event) { 9 | this.event = event; 10 | } 11 | 12 | static public WrapMotionEvent wrap(MotionEvent event) { 13 | try { 14 | return new EclairMotionEvent(event); 15 | } catch (VerifyError e) { 16 | return new WrapMotionEvent(event); 17 | } 18 | } 19 | 20 | public int getAction() { 21 | return event.getAction(); 22 | } 23 | 24 | public float getX() { 25 | return event.getX(); 26 | } 27 | 28 | public float getX(int pointerIndex) { 29 | verifyPointerIndex(pointerIndex); 30 | return getX(); 31 | } 32 | 33 | public float getY() { 34 | return event.getY(); 35 | } 36 | 37 | public float getY(int pointerIndex) { 38 | verifyPointerIndex(pointerIndex); 39 | return getY(); 40 | } 41 | 42 | public int getPointerCount() { 43 | return 1; 44 | } 45 | 46 | public int getPointerId(int pointerIndex) { 47 | verifyPointerIndex(pointerIndex); 48 | return 0; 49 | } 50 | 51 | private void verifyPointerIndex(int pointerIndex) { 52 | if (pointerIndex > 0) { 53 | throw new IllegalArgumentException( 54 | "Invalid pointer index for Donut/Cupcake"); 55 | } 56 | } 57 | 58 | } -------------------------------------------------------------------------------- /art/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/1.png -------------------------------------------------------------------------------- /art/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/10.png -------------------------------------------------------------------------------- /art/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/11.png -------------------------------------------------------------------------------- /art/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/12.png -------------------------------------------------------------------------------- /art/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/2.png -------------------------------------------------------------------------------- /art/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/3.png -------------------------------------------------------------------------------- /art/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/4.png -------------------------------------------------------------------------------- /art/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/5.png -------------------------------------------------------------------------------- /art/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/6.png -------------------------------------------------------------------------------- /art/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/7.png -------------------------------------------------------------------------------- /art/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/8.png -------------------------------------------------------------------------------- /art/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/art/9.png -------------------------------------------------------------------------------- /library/library_SlidingMenu/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/gen/com/jeremyfeinstein/slidingmenu/lib/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package com.jeremyfeinstein.slidingmenu.lib; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /library/library_SlidingMenu/library.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rano1/TopNews/d3278feb355e22aab1932a957033e3cb16730409/library/library_SlidingMenu/libs/android-support-v4.jar -------------------------------------------------------------------------------- /library/library_SlidingMenu/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4.0.0 5 | 6 | slidingmenu 7 | SlidingMenu 8 | apklib 9 | 10 | 11 | com.jeremyfeinstein.slidingmenu 12 | parent 13 | 1.3-SNAPSHOT 14 | ../pom.xml 15 | 16 | 17 | 18 | 19 | com.google.android 20 | android 21 | 22 | 23 | com.google.android 24 | support-v4 25 | 26 | 27 | 28 | 29 | src 30 | 31 | 32 | 33 | com.jayway.maven.plugins.android.generation2 34 | android-maven-plugin 35 | true 36 | 37 | ignored 38 | 39 | 40 | 41 | 42 | org.codehaus.mojo 43 | build-helper-maven-plugin 44 | 1.7 45 | 46 | 47 | package 48 | 49 | attach-artifact 50 | 51 | 52 | 53 | 54 | jar 55 | ${project.build.directory}/${project.build.finalName}.jar 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system use, 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | android.library=true 11 | # Project target. 12 | target=android-17 13 | 14 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/res/layout/slidingmenumain.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 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 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/src/com/jeremyfeinstein/slidingmenu/lib/CanvasTransformerBuilder.java: -------------------------------------------------------------------------------- 1 | package com.jeremyfeinstein.slidingmenu.lib; 2 | 3 | import android.graphics.Canvas; 4 | import android.view.animation.Interpolator; 5 | 6 | import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.CanvasTransformer; 7 | 8 | public class CanvasTransformerBuilder { 9 | 10 | private CanvasTransformer mTrans; 11 | 12 | private static Interpolator lin = new Interpolator() { 13 | public float getInterpolation(float t) { 14 | return t; 15 | } 16 | }; 17 | 18 | private void initTransformer() { 19 | if (mTrans == null) 20 | mTrans = new CanvasTransformer() { 21 | public void transformCanvas(Canvas canvas, float percentOpen) { } 22 | }; 23 | } 24 | 25 | public CanvasTransformer zoom(final int openedX, final int closedX, 26 | final int openedY, final int closedY, 27 | final int px, final int py) { 28 | return zoom(openedX, closedX, openedY, closedY, px, py, lin); 29 | } 30 | 31 | public CanvasTransformer zoom(final int openedX, final int closedX, 32 | final int openedY, final int closedY, 33 | final int px, final int py, final Interpolator interp) { 34 | initTransformer(); 35 | mTrans = new CanvasTransformer() { 36 | public void transformCanvas(Canvas canvas, float percentOpen) { 37 | mTrans.transformCanvas(canvas, percentOpen); 38 | float f = interp.getInterpolation(percentOpen); 39 | canvas.scale((openedX - closedX) * f + closedX, 40 | (openedY - closedY) * f + closedY, px, py); 41 | } 42 | }; 43 | return mTrans; 44 | } 45 | 46 | public CanvasTransformer rotate(final int openedDeg, final int closedDeg, 47 | final int px, final int py) { 48 | return rotate(openedDeg, closedDeg, px, py, lin); 49 | } 50 | 51 | public CanvasTransformer rotate(final int openedDeg, final int closedDeg, 52 | final int px, final int py, final Interpolator interp) { 53 | initTransformer(); 54 | mTrans = new CanvasTransformer() { 55 | public void transformCanvas(Canvas canvas, float percentOpen) { 56 | mTrans.transformCanvas(canvas, percentOpen); 57 | float f = interp.getInterpolation(percentOpen); 58 | canvas.rotate((openedDeg - closedDeg) * f + closedDeg, 59 | px, py); 60 | } 61 | }; 62 | return mTrans; 63 | } 64 | 65 | public CanvasTransformer translate(final int openedX, final int closedX, 66 | final int openedY, final int closedY) { 67 | return translate(openedX, closedX, openedY, closedY, lin); 68 | } 69 | 70 | public CanvasTransformer translate(final int openedX, final int closedX, 71 | final int openedY, final int closedY, final Interpolator interp) { 72 | initTransformer(); 73 | mTrans = new CanvasTransformer() { 74 | public void transformCanvas(Canvas canvas, float percentOpen) { 75 | mTrans.transformCanvas(canvas, percentOpen); 76 | float f = interp.getInterpolation(percentOpen); 77 | canvas.translate((openedX - closedX) * f + closedX, 78 | (openedY - closedY) * f + closedY); 79 | } 80 | }; 81 | return mTrans; 82 | } 83 | 84 | public CanvasTransformer concatTransformer(final CanvasTransformer t) { 85 | initTransformer(); 86 | mTrans = new CanvasTransformer() { 87 | public void transformCanvas(Canvas canvas, float percentOpen) { 88 | mTrans.transformCanvas(canvas, percentOpen); 89 | t.transformCanvas(canvas, percentOpen); 90 | } 91 | }; 92 | return mTrans; 93 | } 94 | 95 | } 96 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/src/com/jeremyfeinstein/slidingmenu/lib/MenuInterface.java: -------------------------------------------------------------------------------- 1 | package com.jeremyfeinstein.slidingmenu.lib; 2 | 3 | import android.graphics.Canvas; 4 | import android.graphics.drawable.Drawable; 5 | import android.view.View; 6 | 7 | public interface MenuInterface { 8 | 9 | public abstract void scrollBehindTo(int x, int y, 10 | CustomViewBehind cvb, float scrollScale); 11 | 12 | public abstract int getMenuLeft(CustomViewBehind cvb, View content); 13 | 14 | public abstract int getAbsLeftBound(CustomViewBehind cvb, View content); 15 | 16 | public abstract int getAbsRightBound(CustomViewBehind cvb, View content); 17 | 18 | public abstract boolean marginTouchAllowed(View content, int x, int threshold); 19 | 20 | public abstract boolean menuOpenTouchAllowed(View content, int currPage, int x); 21 | 22 | public abstract boolean menuTouchInQuickReturn(View content, int currPage, int x); 23 | 24 | public abstract boolean menuClosedSlideAllowed(int x); 25 | 26 | public abstract boolean menuOpenSlideAllowed(int x); 27 | 28 | public abstract void drawShadow(Canvas canvas, Drawable shadow, int width); 29 | 30 | public abstract void drawFade(Canvas canvas, int alpha, 31 | CustomViewBehind cvb, View content); 32 | 33 | public abstract void drawSelector(View content, Canvas canvas, float percentOpen); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /library/library_SlidingMenu/src/com/jeremyfeinstein/slidingmenu/lib/app/SlidingActivityBase.java: -------------------------------------------------------------------------------- 1 | package com.jeremyfeinstein.slidingmenu.lib.app; 2 | 3 | import android.view.View; 4 | import android.view.ViewGroup.LayoutParams; 5 | 6 | import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; 7 | 8 | public interface SlidingActivityBase { 9 | 10 | /** 11 | * Set the behind view content to an explicit view. This view is placed directly into the behind view 's view hierarchy. 12 | * It can itself be a complex view hierarchy. 13 | * 14 | * @param view The desired content to display. 15 | * @param layoutParams Layout parameters for the view. 16 | */ 17 | public void setBehindContentView(View view, LayoutParams layoutParams); 18 | 19 | /** 20 | * Set the behind view content to an explicit view. This view is placed directly into the behind view 's view hierarchy. 21 | * It can itself be a complex view hierarchy. When calling this method, the layout parameters of the specified 22 | * view are ignored. Both the width and the height of the view are set by default to MATCH_PARENT. To use your 23 | * own layout parameters, invoke setContentView(android.view.View, android.view.ViewGroup.LayoutParams) instead. 24 | * 25 | * @param view The desired content to display. 26 | */ 27 | public void setBehindContentView(View view); 28 | 29 | /** 30 | * Set the behind view content from a layout resource. The resource will be inflated, adding all top-level views 31 | * to the behind view. 32 | * 33 | * @param layoutResID Resource ID to be inflated. 34 | */ 35 | public void setBehindContentView(int layoutResID); 36 | 37 | /** 38 | * Gets the SlidingMenu associated with this activity. 39 | * 40 | * @return the SlidingMenu associated with this activity. 41 | */ 42 | public SlidingMenu getSlidingMenu(); 43 | 44 | /** 45 | * Toggle the SlidingMenu. If it is open, it will be closed, and vice versa. 46 | */ 47 | public void toggle(); 48 | 49 | /** 50 | * Close the SlidingMenu and show the content view. 51 | */ 52 | public void showContent(); 53 | 54 | /** 55 | * Open the SlidingMenu and show the menu view. 56 | */ 57 | public void showMenu(); 58 | 59 | /** 60 | * Open the SlidingMenu and show the secondary (right) menu view. Will default to the regular menu 61 | * if there is only one. 62 | */ 63 | public void showSecondaryMenu(); 64 | 65 | /** 66 | * Controls whether the ActionBar slides along with the above view when the menu is opened, 67 | * or if it stays in place. 68 | * 69 | * @param slidingActionBarEnabled True if you want the ActionBar to slide along with the SlidingMenu, 70 | * false if you want the ActionBar to stay in place 71 | */ 72 | public void setSlidingActionBarEnabled(boolean slidingActionBarEnabled); 73 | 74 | } 75 | --------------------------------------------------------------------------------