├── .gitignore ├── .idea ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── libs │ ├── BaiduLBS_Android.jar │ ├── arm64-v8a │ │ └── liblocSDK7a.so │ ├── armeabi-v7a │ │ └── liblocSDK7a.so │ ├── armeabi │ │ └── liblocSDK7a.so │ ├── commons-codec-1.4.jar │ ├── fastjson-1.1.6.jar │ ├── pinyin4j-2.5.0.jar │ ├── x86 │ │ └── liblocSDK7a.so │ ├── x86_64 │ │ └── liblocSDK7a.so │ └── zxing.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── bk120 │ │ └── cinematicket │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── aboutme │ ├── java │ │ └── com │ │ │ └── bk120 │ │ │ └── cinematicket │ │ │ ├── MainActivity.java │ │ │ ├── MyApp.java │ │ │ ├── activitys │ │ │ ├── AddBalanceActivity.java │ │ │ ├── AddCommentActivity.java │ │ │ ├── AddressActivity.java │ │ │ ├── BalanceActivity.java │ │ │ ├── BuyFilmActivity.java │ │ │ ├── ChatRoomActivity.java │ │ │ ├── CinemaChairActivity.java │ │ │ ├── CinemaSupFilmActivity.java │ │ │ ├── FlashActivity.java │ │ │ ├── GestureLockActivity.java │ │ │ ├── GetBalanceActivity.java │ │ │ ├── LoginRegisterActivity.java │ │ │ ├── MapViewActivity.java │ │ │ ├── PlayFilmActivity.java │ │ │ ├── ScanActivity.java │ │ │ ├── SettingActivity.java │ │ │ ├── TicketOrderActivity.java │ │ │ ├── UpdateUserActivity.java │ │ │ └── WalletActivity.java │ │ │ ├── adapter │ │ │ ├── AddBalanceAdapter.java │ │ │ ├── AddressAdapter.java │ │ │ ├── CardAdapter.java │ │ │ ├── ChatAdapter.java │ │ │ ├── CinemaSupFilmAdapter.java │ │ │ ├── DianYingPageAdapter.java │ │ │ ├── LoginRegisterPagerAdapter.java │ │ │ ├── ReYingAdapter.java │ │ │ ├── SheQuAdapter.java │ │ │ └── TicketOrderAdapter.java │ │ │ ├── bean │ │ │ ├── AddressBean.java │ │ │ ├── BuyFilm.java │ │ │ ├── BuyFilmSign.java │ │ │ ├── Card.java │ │ │ ├── Chat.java │ │ │ ├── ChatSign.java │ │ │ ├── Cinema.java │ │ │ ├── CinemaSign.java │ │ │ ├── CinemaSupFilm.java │ │ │ ├── CinemaSupFilmSign.java │ │ │ ├── City.java │ │ │ ├── CitySign.java │ │ │ ├── Comment.java │ │ │ ├── FilmUrlBean.java │ │ │ ├── Movie.java │ │ │ ├── MovieSign.java │ │ │ ├── RegisterSuccessSign.java │ │ │ ├── SearchFilmBean.java │ │ │ ├── StringSign.java │ │ │ ├── Ticket.java │ │ │ ├── User.java │ │ │ └── ViewSign.java │ │ │ ├── constants │ │ │ ├── DianYingConstant.java │ │ │ ├── JuHeConstant.java │ │ │ └── MainConstant.java │ │ │ ├── db │ │ │ ├── CardInfoDao.java │ │ │ ├── CommentDao.java │ │ │ ├── MyOpenHelper.java │ │ │ ├── TicketInfoDao.java │ │ │ └── UserInfoDao.java │ │ │ ├── fragments │ │ │ ├── AddCardFragment.java │ │ │ ├── DianYingFragment.java │ │ │ ├── DianYing_ReYingFragment.java │ │ │ ├── DianYing_ZhaoPianFragment.java │ │ │ ├── SheQuFragment.java │ │ │ ├── UserLoginFragment.java │ │ │ ├── UserRegisterFragment.java │ │ │ ├── WodeFragment.java │ │ │ └── YingYuanFragment.java │ │ │ ├── gesture │ │ │ ├── GestureLockView.java │ │ │ └── GestureLockViewGroup.java │ │ │ ├── info │ │ │ ├── turing │ │ │ ├── Aes.java │ │ │ ├── AesTest.java │ │ │ ├── Md5.java │ │ │ └── PostServer.java │ │ │ ├── utils │ │ │ ├── BaiBuDingWeiUtils.java │ │ │ ├── DateUtils.java │ │ │ ├── JSONUtils.java │ │ │ ├── KeyBoardUtils.java │ │ │ ├── NetWorkUtil.java │ │ │ ├── PinYinUtils.java │ │ │ └── SharePreferencesUtils.java │ │ │ ├── views │ │ │ └── RecycleViewDividerL.java │ │ │ └── zxing │ │ │ ├── activity │ │ │ └── CaptureActivity.java │ │ │ ├── camera │ │ │ ├── AutoFocusCallback.java │ │ │ ├── CameraConfigurationManager.java │ │ │ ├── CameraManager.java │ │ │ ├── FlashlightManager.java │ │ │ ├── PlanarYUVLuminanceSource.java │ │ │ └── PreviewCallback.java │ │ │ ├── decoding │ │ │ ├── CaptureActivityHandler.java │ │ │ ├── DecodeFormatManager.java │ │ │ ├── DecodeHandler.java │ │ │ ├── DecodeThread.java │ │ │ ├── FinishListener.java │ │ │ ├── InactivityTimer.java │ │ │ └── Intents.java │ │ │ ├── encoding │ │ │ └── EncodingHandler.java │ │ │ └── view │ │ │ ├── ViewfinderResultPointCallback.java │ │ │ └── ViewfinderView.java │ └── res │ │ ├── anim │ │ ├── acrivity1_push_in.xml │ │ ├── acrivity2_push_in.xml │ │ ├── acrivity3_push_in.xml │ │ ├── acrivity4_push_in.xml │ │ ├── pop_in.xml │ │ └── pop_out.xml │ │ ├── drawable │ │ ├── addressactivity_et_shape.xml │ │ ├── addressactivity_recycleview_item_selelctor.xml │ │ ├── addressactivity_recycleview_item_shape.xml │ │ ├── addressactivity_recycleview_item_shape_nor.xml │ │ ├── addressactivity_searchbtn_selector.xml │ │ ├── addressactivity_searchbtn_shape.xml │ │ ├── addressactivity_searchbtn_shape_nor.xml │ │ ├── card_update_item_shape.xml │ │ ├── chair_tuijian_shape1.xml │ │ ├── chair_tuijian_shape2.xml │ │ ├── check_button_off.png │ │ ├── check_button_on.png │ │ ├── circle_shape.xml │ │ ├── dianying_fragment_toolbar_drag_shape.xml │ │ ├── dianying_fragment_toolbar_drag_shape_nor.xml │ │ ├── dianying_fragment_toolbar_shape.xml │ │ ├── drawer_right_item_shape.xml │ │ ├── location_shape.xml │ │ ├── main_shape.xml │ │ ├── setting_activity_gesture_swich.xml │ │ └── zhaopain_item_shape.xml │ │ ├── layout │ │ ├── aboutme_item.xml │ │ ├── activity_add_balance.xml │ │ ├── activity_add_comment.xml │ │ ├── activity_address.xml │ │ ├── activity_balance.xml │ │ ├── activity_buy_film.xml │ │ ├── activity_chat_room.xml │ │ ├── activity_cinema_chair.xml │ │ ├── activity_cinema_sup_film.xml │ │ ├── activity_flash.xml │ │ ├── activity_gesture_lock.xml │ │ ├── activity_get_balance.xml │ │ ├── activity_login_register.xml │ │ ├── activity_main.xml │ │ ├── activity_map_view.xml │ │ ├── activity_play_film.xml │ │ ├── activity_scan.xml │ │ ├── activity_setting.xml │ │ ├── activity_ticket_order.xml │ │ ├── activity_update_user.xml │ │ ├── activity_wallet.xml │ │ ├── add_balance_recycleview_item.xml │ │ ├── addressitem.xml │ │ ├── camera.xml │ │ ├── card_item_addmoney_dialog.xml │ │ ├── card_item_updatecardinfo_pop.xml │ │ ├── card_recycleview_item.xml │ │ ├── chat_room_recycleview_item0.xml │ │ ├── chat_room_recycleview_item1.xml │ │ ├── cinemasupfilm_recycleview_item.xml │ │ ├── erweima_dialog.xml │ │ ├── fragment_add_card.xml │ │ ├── fragment_dian_ying.xml │ │ ├── fragment_dian_ying__re_ying.xml │ │ ├── fragment_dian_ying__zhao_pian.xml │ │ ├── fragment_she_qu.xml │ │ ├── fragment_user_login.xml │ │ ├── fragment_user_register.xml │ │ ├── fragment_wode.xml │ │ ├── fragment_ying_yuan.xml │ │ ├── gallery_item.xml │ │ ├── pay_money_dialog.xml │ │ ├── reying_recycleview_item.xml │ │ ├── shequ_recycle_item.xml │ │ ├── ticket_order_recycleview_item.xml │ │ ├── userinfo_update_motto_dialog.xml │ │ ├── userinfo_update_passwod_dialog.xml │ │ └── userinfo_update_username_dialog.xml │ │ ├── mipmap-hdpi │ │ ├── add1.png │ │ ├── add_white.png │ │ ├── arrow_right.png │ │ ├── arrow_right1.png │ │ ├── back.png │ │ ├── bg2.png │ │ ├── bg6.png │ │ ├── bg_login.jpg │ │ ├── bird.jpg │ │ ├── bk120.png │ │ ├── book.png │ │ ├── card_gonghang.png │ │ ├── card_jianhang.png │ │ ├── card_nonghang.png │ │ ├── card_qq.png │ │ ├── card_weixin.png │ │ ├── card_zhifubao.png │ │ ├── chicked.png │ │ ├── comment_icon1.png │ │ ├── comment_icon2.png │ │ ├── comment_icon3.png │ │ ├── comment_icon4.png │ │ ├── comment_icon5.png │ │ ├── comment_icon6.png │ │ ├── comment_icon7.png │ │ ├── comment_icon8.png │ │ ├── comment_icon9.png │ │ ├── delete.png │ │ ├── dianying1.png │ │ ├── dianying2.png │ │ ├── dianyingyuan1.png │ │ ├── dianyingyuan2.png │ │ ├── down.png │ │ ├── drawer_bg.png │ │ ├── erweima.png │ │ ├── facd.png │ │ ├── flash.png │ │ ├── gallery0.png │ │ ├── gallery1.png │ │ ├── gallery2.png │ │ ├── gallery3.png │ │ ├── gallery4.png │ │ ├── gongkai.png │ │ ├── i0.png │ │ ├── i1.png │ │ ├── i10.png │ │ ├── i11.png │ │ ├── i12.png │ │ ├── i13.png │ │ ├── i14.png │ │ ├── i15.png │ │ ├── i16.png │ │ ├── i17.png │ │ ├── i18.png │ │ ├── i19.png │ │ ├── i2.png │ │ ├── i20.png │ │ ├── i21.png │ │ ├── i22.png │ │ ├── i3.png │ │ ├── i4.png │ │ ├── i5.png │ │ ├── i6.png │ │ ├── i7.png │ │ ├── i8.png │ │ ├── i9.png │ │ ├── ic_save.png │ │ ├── load_error.png │ │ ├── location.png │ │ ├── mima.png │ │ ├── money.png │ │ ├── navbar.png │ │ ├── nowlocation.png │ │ ├── robot.png │ │ ├── scan.png │ │ ├── shequ1.png │ │ ├── shequ2.png │ │ ├── touxiang_online.png │ │ ├── touxiang_outline.png │ │ ├── user.png │ │ ├── user11.png │ │ ├── voice.png │ │ ├── wode1.png │ │ ├── wode2.png │ │ ├── wode_daifukuan.png │ │ ├── wode_daipinjia.png │ │ ├── wode_daituikuan.png │ │ ├── wode_kanguo.png │ │ ├── wode_pinlun.png │ │ ├── wode_redian.png │ │ ├── wode_weixiaofei.png │ │ ├── wode_xiangkan.png │ │ └── zhaopian_init.png │ │ ├── raw │ │ ├── beep.ogg │ │ └── realm_properties │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── attr.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── bk120 │ └── cinematicket │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── mytest_baidumap ├── .gitignore ├── build.gradle ├── libs │ └── BaiduLBS_Android.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── bk120 │ │ └── mytest_baidumap │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── bk120 │ │ │ └── mytest_baidumap │ │ │ ├── BaiBuDingWeiUtils.java │ │ │ └── MainActivity.java │ ├── jniLibs │ │ ├── arm64-v8a │ │ │ └── liblocSDK7a.so │ │ ├── armeabi-v7a │ │ │ └── liblocSDK7a.so │ │ ├── armeabi │ │ │ └── liblocSDK7a.so │ │ ├── x86 │ │ │ └── liblocSDK7a.so │ │ └── x86_64 │ │ │ └── liblocSDK7a.so │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── bk120 │ └── mytest_baidumap │ └── ExampleUnitTest.java ├── mytest_cehuacaidan ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── bk120 │ │ └── mytest_cehuacaidan │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── bk120 │ │ │ └── mytest_cehuacaidan │ │ │ └── MainActivity.java │ └── res │ │ ├── drawable │ │ ├── ic_android_black_24dp.xml │ │ ├── ic_backup_black_24dp.xml │ │ └── ic_cake_black_24dp.xml │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── bk120 │ └── mytest_cehuacaidan │ └── ExampleUnitTest.java ├── mytest_constraintlayout ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── bk120 │ │ └── mytest_constraintlayout │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── bk120 │ │ │ └── mytest_constraintlayout │ │ │ └── MainActivity.java │ ├── res │ │ ├── drawable │ │ │ └── ic_cake_black_24dp.xml │ │ ├── layout │ │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── wifi.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── wifi.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── wifi.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── wifi.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_round.png │ │ │ └── wifi.png │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ └── wifi-web.png │ └── test │ └── java │ └── com │ └── bk120 │ └── mytest_constraintlayout │ └── ExampleUnitTest.java ├── mytest_gesturelock ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── bk120 │ │ └── mytest_gesturelock │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── bk120 │ │ │ └── mytest_gesturelock │ │ │ ├── MainActivity.java │ │ │ └── gesture │ │ │ ├── GestureLockView.java │ │ │ └── GestureLockViewGroup.java │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ ├── bg2.png │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── attr.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── bk120 │ └── mytest_gesturelock │ └── ExampleUnitTest.java ├── project_info ├── settings.gradle └── shotscreen ├── shot1.png ├── shot2.png ├── shot3.png ├── shot4.png ├── shot5.png ├── shot6.png ├── shot7.png └── shot8.png /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

我的毕业设计--电影票购票系统

2 | 界面设计很Low,对颜色布局设计很菜,没感觉,功能简单,对于毕设足以。 3 | 其中包括一些部分功能的小Demo测试,比如官方侧滑菜单、地址分类导航、自定义手势密码、百度定位、图灵机器人聊天问答等。 4 | 模块功能持续更新中... 5 |

下面为一些项目截图 :

6 | 7 | ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot1.png) ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot2.png) ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot3.png) 8 | ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot4.png) ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot5.png) ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot6.png) 9 | ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot7.png) ![](https://github.com/BK120/CinemaTicket/blob/master/shotscreen/shot8.png)  -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 25 5 | buildToolsVersion "25.0.0" 6 | defaultConfig { 7 | applicationId "com.bk120.cinematicket" 8 | minSdkVersion 14 9 | targetSdkVersion 25 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 13 | } 14 | 15 | //关闭Android Studio的png合法性检查 16 | aaptOptions { 17 | cruncherEnabled = false 18 | useNewCruncher = false 19 | } 20 | 21 | buildTypes { 22 | release { 23 | minifyEnabled false 24 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 25 | } 26 | } 27 | sourceSets { 28 | main() { 29 | jniLibs.srcDirs = ['libs'] 30 | } 31 | } 32 | } 33 | 34 | dependencies { 35 | compile fileTree(include: ['*.jar'], dir: 'libs') 36 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 37 | exclude group: 'com.android.support', module: 'support-annotations' 38 | }) 39 | //v4支持包 40 | //注解框架 41 | //汉字转拼音架包 42 | compile files('libs/pinyin4j-2.5.0.jar') 43 | //v7支持包 44 | //事件分发框架 45 | //网络访问框架 46 | //图片加载框架 47 | compile files('libs/BaiduLBS_Android.jar') 48 | //图灵聊天机器人 49 | compile files('libs/fastjson-1.1.6.jar') 50 | compile files('libs/commons-codec-1.4.jar') 51 | //二维码扫描 52 | compile files('libs/zxing.jar') 53 | compile 'com.android.support:support-v4:25.2.0' 54 | compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha9' 55 | compile 'com.jakewharton:butterknife:8.5.1' 56 | compile 'com.android.support:appcompat-v7:25.2.0' 57 | compile 'com.android.support:design:25.2.0' 58 | compile 'org.greenrobot:eventbus:3.0.0' 59 | compile 'com.squareup.okhttp3:okhttp:3.6.0' 60 | compile 'com.squareup.picasso:picasso:2.5.2' 61 | testCompile 'junit:junit:4.12' 62 | annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' 63 | } 64 | -------------------------------------------------------------------------------- /app/libs/BaiduLBS_Android.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/BaiduLBS_Android.jar -------------------------------------------------------------------------------- /app/libs/arm64-v8a/liblocSDK7a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/arm64-v8a/liblocSDK7a.so -------------------------------------------------------------------------------- /app/libs/armeabi-v7a/liblocSDK7a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/armeabi-v7a/liblocSDK7a.so -------------------------------------------------------------------------------- /app/libs/armeabi/liblocSDK7a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/armeabi/liblocSDK7a.so -------------------------------------------------------------------------------- /app/libs/commons-codec-1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/commons-codec-1.4.jar -------------------------------------------------------------------------------- /app/libs/fastjson-1.1.6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/fastjson-1.1.6.jar -------------------------------------------------------------------------------- /app/libs/pinyin4j-2.5.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/pinyin4j-2.5.0.jar -------------------------------------------------------------------------------- /app/libs/x86/liblocSDK7a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/x86/liblocSDK7a.so -------------------------------------------------------------------------------- /app/libs/x86_64/liblocSDK7a.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/x86_64/liblocSDK7a.so -------------------------------------------------------------------------------- /app/libs/zxing.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/libs/zxing.jar -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\develop\Android SDK\Android SDK/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/bk120/cinematicket/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.bk120.cinematicket", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/assets/aboutme: -------------------------------------------------------------------------------- 1 | 本项目名叫电影票购票系统,为本人大学本科毕业设计课题,偏移动客户端,无服务器。 2 | 项目在github上托管,大家可随意git学习使用,项目路径如下,开发工具基于Android Studio,对于Eclispe导入自己去瞎琢磨吧!设计架构为成熟的MVC,使用原生Native开发而成。当然MVP也是可以的,由于使用不熟练且感觉此处使用比较鸡肋,故而弃之。 3 | 主界面使用Fragment,当然里面也有使用的ViewPager与之结合的部分,除了基本控件外,项目也用到了WebView和侧滑DrawerLayout、画廊Gallery、PopupWindow、RecycleView还有部分自定义控件如手势密码,地址分类导航处等。对于最近比较流行的框架比如OkHttp、Picasso、ButterKnife、EventBus和汉字转拼音的JAR包,当然,其中也存在一些问题,我会慢慢的完善解决的。 4 | 时间:2017.03.11 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/MyApp.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket; 2 | 3 | import android.app.Application; 4 | 5 | import com.bk120.cinematicket.bean.Comment; 6 | import com.bk120.cinematicket.constants.MainConstant; 7 | import com.bk120.cinematicket.db.CommentDao; 8 | import com.bk120.cinematicket.utils.SharePreferencesUtils; 9 | 10 | /** 11 | * Created by bk120 on 2017/3/12. 12 | */ 13 | 14 | public class MyApp extends Application{ 15 | @Override 16 | public void onCreate() { 17 | super.onCreate(); 18 | //程序开始前做一些初始化操作,注意资源容易初始化多次 19 | initCommet(); 20 | } 21 | //初始化化一些评论数据 22 | private void initCommet() { 23 | //判断是否需要 24 | boolean aBoolean = SharePreferencesUtils.getBoolean(this, MainConstant.IS_INIT_RES, false); 25 | if(!aBoolean){ 26 | CommentDao dao=new CommentDao(this); 27 | for(int i=0;i< MainConstant.COMMENT_NAME.length;i++){ 28 | Comment c=new Comment(MainConstant.COMMENT_NAME[i],i,MainConstant.COMMENT_DESCRIBE[i], 29 | MainConstant.COMMENT_TIME[i]); 30 | dao.insert(c); 31 | } 32 | SharePreferencesUtils.putBoolean(this,MainConstant.IS_INIT_RES,true); 33 | }else { 34 | return; 35 | } 36 | 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/activitys/FlashActivity.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.activitys; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | 7 | import com.bk120.cinematicket.MainActivity; 8 | import com.bk120.cinematicket.R; 9 | import com.bk120.cinematicket.constants.MainConstant; 10 | 11 | import android.os.Handler; 12 | 13 | /** 14 | * 导航页 15 | */ 16 | public class FlashActivity extends Activity { 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_flash); 22 | // 23 | new Handler().postDelayed(new Runnable() { 24 | @Override 25 | public void run() { 26 | Intent i=new Intent(FlashActivity.this, MainActivity.class); 27 | startActivity(i); 28 | FlashActivity.this.finish(); 29 | } 30 | }, MainConstant.FLASH_TIME); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/activitys/GestureLockActivity.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.activitys; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | import android.view.View; 7 | import android.widget.TextView; 8 | import android.widget.Toast; 9 | 10 | import com.bk120.cinematicket.R; 11 | import com.bk120.cinematicket.constants.MainConstant; 12 | import com.bk120.cinematicket.gesture.GestureLockViewGroup; 13 | 14 | //手势密码界面 15 | public class GestureLockActivity extends Activity { 16 | private GestureLockViewGroup gv; 17 | private TextView show_tv; 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_gesture_lock); 22 | show_tv= (TextView) this.findViewById(R.id.gestureactivity_tv); 23 | gv= (GestureLockViewGroup) this.findViewById(R.id.gestureactivity_gv); 24 | gv.setOnGestureLockViewListener(new GestureLockViewGroup.OnGestureLockViewListener() { 25 | @Override 26 | public void onBlockSelected(int cId) { 27 | } 28 | @Override 29 | public void onGestureEvent(boolean matched) { 30 | if (matched){ 31 | show_tv.setText("密码正确"); 32 | Intent i=new Intent(GestureLockActivity.this,BalanceActivity.class); 33 | startActivity(i); 34 | overridePendingTransition(R.anim.acrivity3_push_in,0); 35 | GestureLockActivity.this.finish(); 36 | }else { 37 | show_tv.setText("密码错误"); 38 | } 39 | } 40 | @Override 41 | public void onUnmatchedExceedBoundary() { 42 | Toast.makeText(getApplicationContext(),"超过测试次数!",Toast.LENGTH_LONG).show(); 43 | gv.setUnMatchExceedBoundary(3); 44 | GestureLockActivity.this.finish(); 45 | } 46 | }); 47 | } 48 | //退出 49 | public void back(View view){ 50 | this.finish(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/activitys/TicketOrderActivity.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.activitys; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | import android.support.v7.widget.LinearLayoutManager; 6 | import android.support.v7.widget.RecyclerView; 7 | import android.view.View; 8 | import android.widget.Toast; 9 | 10 | import com.bk120.cinematicket.R; 11 | import com.bk120.cinematicket.adapter.TicketOrderAdapter; 12 | import com.bk120.cinematicket.bean.Ticket; 13 | import com.bk120.cinematicket.bean.User; 14 | import com.bk120.cinematicket.db.TicketInfoDao; 15 | import com.bk120.cinematicket.db.UserInfoDao; 16 | 17 | import java.util.List; 18 | 19 | import butterknife.BindView; 20 | import butterknife.ButterKnife; 21 | 22 | //电影票订单 23 | public class TicketOrderActivity extends Activity { 24 | private User user; 25 | private UserInfoDao uDao; 26 | private List tLists; 27 | private TicketInfoDao tDao; 28 | @BindView(R.id.ticketorderactivity_recycleview) 29 | RecyclerView recyclerView; 30 | @Override 31 | protected void onCreate(Bundle savedInstanceState) { 32 | super.onCreate(savedInstanceState); 33 | setContentView(R.layout.activity_ticket_order); 34 | ButterKnife.bind(this); 35 | initData(); 36 | } 37 | //初始化数据 38 | private void initData() { 39 | uDao=new UserInfoDao(this); 40 | user=uDao.selectOnLine(); 41 | tDao=new TicketInfoDao(this); 42 | tLists=tDao.selectAll(user.getUsername()); 43 | if (tLists==null){ 44 | Toast.makeText(this,"你还没有订单呢!",Toast.LENGTH_SHORT).show(); 45 | recyclerView.setVisibility(View.INVISIBLE); 46 | return; 47 | } 48 | initRecycleView(); 49 | } 50 | //初始化RecycleView 51 | private void initRecycleView() { 52 | LinearLayoutManager manager=new LinearLayoutManager(this); 53 | recyclerView.setLayoutManager(manager); 54 | recyclerView.setAdapter(new TicketOrderAdapter(tLists,this)); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/adapter/DianYingPageAdapter.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.adapter; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentPagerAdapter; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by bk120 on 2017/3/3. 11 | */ 12 | 13 | public class DianYingPageAdapter extends FragmentPagerAdapter{ 14 | private List list; 15 | public DianYingPageAdapter(FragmentManager fm) { 16 | super(fm); 17 | } 18 | 19 | public DianYingPageAdapter(FragmentManager fm,List l) { 20 | super(fm); 21 | this.list=l; 22 | } 23 | 24 | @Override 25 | public int getCount() { 26 | return list.size(); 27 | } 28 | 29 | 30 | @Override 31 | public Fragment getItem(int position) { 32 | return list.get(position); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/adapter/LoginRegisterPagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.adapter; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentPagerAdapter; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by bk120 on 2017/3/7. 11 | * 登录注册界面的PagerAdapter 12 | */ 13 | 14 | public class LoginRegisterPagerAdapter extends FragmentPagerAdapter{ 15 | private List list; 16 | public LoginRegisterPagerAdapter(FragmentManager fm) { 17 | super(fm); 18 | } 19 | 20 | public LoginRegisterPagerAdapter(FragmentManager fm,List l) { 21 | super(fm); 22 | this.list=l; 23 | } 24 | 25 | @Override 26 | public int getCount() { 27 | return list.size(); 28 | } 29 | 30 | 31 | @Override 32 | public android.support.v4.app.Fragment getItem(int position) { 33 | return list.get(position); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/AddressBean.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/4. 5 | * 地址对象类 6 | */ 7 | 8 | public class AddressBean { 9 | private String address; 10 | public AddressBean(String address){ 11 | this.address=address; 12 | } 13 | public String getAddress(){ 14 | return this.address; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/BuyFilmSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/17. 5 | * 要购买的电影信息信号量 6 | */ 7 | 8 | public class BuyFilmSign { 9 | private String sign; 10 | public BuyFilmSign(String s){ 11 | this.sign=s; 12 | } 13 | public String getSign() { 14 | return sign; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/Card.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/8. 5 | * 信用卡 6 | * 钱包界面,显示当前信用卡种类如,建行,农行,工行,支付宝,微信,QQ等 7 | */ 8 | 9 | public class Card { 10 | private int id; 11 | //拥有者,单一 12 | private String hostName; 13 | //类型,建行,农行,啥的? 14 | private int type; 15 | //账号名 16 | private String cardName; 17 | //余额 18 | private double balance; 19 | //背景颜色,0~5 20 | private int bgColor; 21 | public Card(String hn,int type,double b){ 22 | this.hostName=hn; 23 | this.type=type; 24 | this.balance=b; 25 | } 26 | 27 | public int getId() { 28 | return id; 29 | } 30 | 31 | public void setId(int id) { 32 | this.id = id; 33 | } 34 | 35 | public String getHostName() { 36 | return hostName; 37 | } 38 | 39 | public void setHostName(String hostName) { 40 | this.hostName = hostName; 41 | } 42 | 43 | public int getType() { 44 | return type; 45 | } 46 | 47 | public void setType(int type) { 48 | this.type = type; 49 | } 50 | 51 | public String getCardName() { 52 | return cardName; 53 | } 54 | 55 | public void setCardName(String cardName) { 56 | this.cardName = cardName; 57 | } 58 | 59 | public double getBalance() { 60 | return balance; 61 | } 62 | 63 | public void setBalance(double balance) { 64 | this.balance = balance; 65 | } 66 | 67 | public int getBgColor() { 68 | return bgColor; 69 | } 70 | 71 | public void setBgColor(int bgColor) { 72 | this.bgColor = bgColor; 73 | } 74 | 75 | @Override 76 | public String toString() { 77 | return "[id="+id+";hostName="+hostName+";type="+type+";cardName="+cardName+";balance="+"" + 78 | balance+";bgColor="+bgColor+"+]"; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/Chat.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/22. 5 | * 聊天信息 6 | */ 7 | 8 | public class Chat { 9 | //标识 0标识机器人,1标识用户 10 | private int sign; 11 | //用户名 12 | private String name; 13 | //信息 14 | private String message; 15 | //时间 16 | private String time; 17 | //构造器 18 | public Chat(int s,String n,String m,String t){ 19 | this.sign=s; 20 | this.name=n; 21 | this.message=m; 22 | this.time=t; 23 | } 24 | 25 | public String getName() { 26 | return name; 27 | } 28 | 29 | public void setName(String name) { 30 | this.name = name; 31 | } 32 | 33 | public String getMessage() { 34 | return message; 35 | } 36 | 37 | public void setMessage(String message) { 38 | this.message = message; 39 | } 40 | 41 | public String getTime() { 42 | return time; 43 | } 44 | 45 | public void setTime(String time) { 46 | this.time = time; 47 | } 48 | 49 | public int getSign() { 50 | return sign; 51 | } 52 | 53 | public void setSign(int sign) { 54 | this.sign = sign; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/ChatSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/17. 5 | *聊天室数据获取成功信号量 6 | */ 7 | 8 | public class ChatSign { 9 | private String sign; 10 | public ChatSign(String s){ 11 | this.sign=s; 12 | } 13 | public String getSign() { 14 | return sign; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/Cinema.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/16. 5 | * 影院信息 6 | */ 7 | 8 | public class Cinema { 9 | //影院名称 10 | private String name; 11 | //影院地址 12 | private String address; 13 | //联系电话 14 | private String telephone; 15 | //经度 16 | private String latitude; 17 | //纬度 18 | private String longtitudel; 19 | //交通路线 20 | private String trafficRoutes; 21 | //距离 22 | private String distance; 23 | //构造器 24 | public Cinema(String n,String a){ 25 | this.name=n; 26 | this.address=a; 27 | } 28 | public String getName() { 29 | return name; 30 | } 31 | 32 | public void setName(String name) { 33 | this.name = name; 34 | } 35 | 36 | public String getAddress() { 37 | return address; 38 | } 39 | 40 | public void setAddress(String address) { 41 | this.address = address; 42 | } 43 | 44 | public String getTelephone() { 45 | return telephone; 46 | } 47 | 48 | public void setTelephone(String telephone) { 49 | this.telephone = telephone; 50 | } 51 | 52 | public String getLatitude() { 53 | return latitude; 54 | } 55 | 56 | public void setLatitude(String latitude) { 57 | this.latitude = latitude; 58 | } 59 | 60 | public String getLongtitudel() { 61 | return longtitudel; 62 | } 63 | 64 | public void setLongtitudel(String longtitudel) { 65 | this.longtitudel = longtitudel; 66 | } 67 | 68 | public String getTrafficRoutes() { 69 | return trafficRoutes; 70 | } 71 | 72 | public void setTrafficRoutes(String trafficRoutes) { 73 | this.trafficRoutes = trafficRoutes; 74 | } 75 | 76 | public String getDistance() { 77 | return distance; 78 | } 79 | 80 | public void setDistance(String distance) { 81 | this.distance = distance; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/CinemaSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/16. 5 | * 返回获取电影院的数据信号量 6 | */ 7 | 8 | public class CinemaSign { 9 | private String sign; 10 | public CinemaSign(String address){ 11 | this.sign=address; 12 | } 13 | public String getSign(){ 14 | return this.sign; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/CinemaSupFilm.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/18. 5 | * 支持当前电影的影院信息实体类 6 | */ 7 | 8 | public class CinemaSupFilm { 9 | //影院ID 10 | private String cinemaId; 11 | //影院名称 12 | private String cinemaName; 13 | //影院地址 14 | private String address; 15 | //经度 16 | private String latitde; 17 | //纬度 18 | private String longtitude; 19 | public CinemaSupFilm(String i,String n,String a,String lat,String lon){ 20 | this.cinemaId=i; 21 | this.cinemaName=n; 22 | this.address=a; 23 | this.latitde=lat; 24 | this.longtitude=lon; 25 | } 26 | 27 | public String getCinemaId() { 28 | return cinemaId; 29 | } 30 | 31 | public void setCinemaId(String cinemaId) { 32 | this.cinemaId = cinemaId; 33 | } 34 | 35 | public String getCinemaName() { 36 | return cinemaName; 37 | } 38 | 39 | public void setCinemaName(String cinemaName) { 40 | this.cinemaName = cinemaName; 41 | } 42 | 43 | public String getAddress() { 44 | return address; 45 | } 46 | 47 | public void setAddress(String address) { 48 | this.address = address; 49 | } 50 | 51 | public String getLatitde() { 52 | return latitde; 53 | } 54 | 55 | public void setLatitde(String latitde) { 56 | this.latitde = latitde; 57 | } 58 | 59 | public String getLongtitude() { 60 | return longtitude; 61 | } 62 | 63 | public void setLongtitude(String longtitude) { 64 | this.longtitude = longtitude; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/CinemaSupFilmSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/17. 5 | * 影片支持的城市信息信号量 6 | */ 7 | 8 | public class CinemaSupFilmSign { 9 | private String sign; 10 | public CinemaSupFilmSign(String s){ 11 | this.sign=s; 12 | } 13 | public String getSign() { 14 | return sign; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/City.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/17. 5 | * 支持查询的所有城市信息 6 | */ 7 | 8 | public class City { 9 | //支持恶城市Id 10 | private String id; 11 | //城市名 12 | private String name; 13 | //支持的城市影院数量 14 | private String count; 15 | public City(String i,String n,String c){ 16 | this.id=i; 17 | this.name=n; 18 | this.count=c; 19 | } 20 | public String getId() { 21 | return id; 22 | } 23 | 24 | public void setId(String id) { 25 | this.id = id; 26 | } 27 | 28 | public String getName() { 29 | return name; 30 | } 31 | 32 | public void setName(String name) { 33 | this.name = name; 34 | } 35 | 36 | public String getCount() { 37 | return count; 38 | } 39 | 40 | public void setCount(String count) { 41 | this.count = count; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/CitySign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/17. 5 | * 所有城市信息获取信号量 6 | */ 7 | 8 | public class CitySign { 9 | private String sign; 10 | public CitySign(String s){ 11 | this.sign=s; 12 | } 13 | public String getSign() { 14 | return sign; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/Comment.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/12. 5 | * 影评对象 6 | */ 7 | 8 | public class Comment { 9 | private int id; 10 | private String name; 11 | private int icon; 12 | private String describe; 13 | private String time; 14 | public Comment(String n,int i,String d,String t){ 15 | this.name=n; 16 | this.icon=i; 17 | this.describe=d; 18 | this.time=t; 19 | } 20 | 21 | public int getId() { 22 | return id; 23 | } 24 | 25 | public void setId(int id) { 26 | this.id = id; 27 | } 28 | 29 | public String getName() { 30 | return name; 31 | } 32 | 33 | public void setName(String name) { 34 | this.name = name; 35 | } 36 | 37 | public int getIcon() { 38 | return icon; 39 | } 40 | 41 | public void setIcon(int icon) { 42 | this.icon = icon; 43 | } 44 | 45 | public String getDescribe() { 46 | return describe; 47 | } 48 | 49 | public void setDescribe(String describe) { 50 | this.describe = describe; 51 | } 52 | 53 | public String getTime() { 54 | return time; 55 | } 56 | 57 | public void setTime(String time) { 58 | this.time = time; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/FilmUrlBean.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/6. 5 | * 已经搜索到的电影地址对象 6 | */ 7 | 8 | public class FilmUrlBean { 9 | private String playUrl; 10 | public FilmUrlBean(String url){ 11 | this.playUrl=url; 12 | } 13 | 14 | public String getPlayUrl() { 15 | return playUrl; 16 | } 17 | 18 | public void setPlayUrl(String playUrl) { 19 | this.playUrl = playUrl; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/Movie.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/17. 5 | * 当前正在热映的电影信息 6 | */ 7 | 8 | public class Movie { 9 | //影片ID 10 | private String movie_id; 11 | //影片名称 12 | private String movie_name; 13 | //影片海报路径 14 | private String pic_url; 15 | //构造器 16 | public Movie(String i,String n,String u){ 17 | this.movie_id=i; 18 | this.movie_name=n; 19 | this.pic_url=u; 20 | } 21 | 22 | public String getMovie_id() { 23 | return movie_id; 24 | } 25 | 26 | public void setMovie_id(String movie_id) { 27 | this.movie_id = movie_id; 28 | } 29 | 30 | public String getMovie_name() { 31 | return movie_name; 32 | } 33 | 34 | public void setMovie_name(String movie_name) { 35 | this.movie_name = movie_name; 36 | } 37 | 38 | public String getPic_url() { 39 | return pic_url; 40 | } 41 | 42 | public void setPic_url(String pic_url) { 43 | this.pic_url = pic_url; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/MovieSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/17. 5 | * 所有当前正在热映的电影信息信号量 6 | */ 7 | 8 | public class MovieSign { 9 | private String sign; 10 | public MovieSign(String s){ 11 | this.sign=s; 12 | } 13 | public String getSign() { 14 | return sign; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/RegisterSuccessSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/7. 5 | * 注册成功信号 6 | */ 7 | 8 | public class RegisterSuccessSign { 9 | private String userName; 10 | private String passWord; 11 | public RegisterSuccessSign(String name,String pwd){ 12 | this.userName=name; 13 | this.passWord=pwd; 14 | } 15 | 16 | public String getUserName() { 17 | return userName; 18 | } 19 | 20 | public void setUserName(String userName) { 21 | this.userName = userName; 22 | } 23 | 24 | public String getPassWord() { 25 | return passWord; 26 | } 27 | 28 | public void setPassWord(String passWord) { 29 | this.passWord = passWord; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/StringSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/7. 5 | * EventBus使用信号量 6 | */ 7 | 8 | public class StringSign { 9 | private String sign; 10 | 11 | public StringSign(String sign) { 12 | this.sign = sign; 13 | } 14 | 15 | public String getSign() { 16 | return sign; 17 | } 18 | 19 | public void setSign(String sign) { 20 | this.sign = sign; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/User.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/7. 5 | * 用户表 6 | */ 7 | 8 | public class User { 9 | //唯一标识,用户Id 10 | private int id; 11 | private String username; 12 | private String password; 13 | private String status; 14 | private double balance; 15 | private String motto; 16 | private int isRememberPWD; 17 | private int isAutoLogin; 18 | public User(String username ,String password){ 19 | this.username=username; 20 | this.password=password; 21 | } 22 | 23 | public String getUsername() { 24 | return username; 25 | } 26 | 27 | public void setUsername(String username) { 28 | this.username = username; 29 | } 30 | 31 | public String getPassword() { 32 | return password; 33 | } 34 | 35 | public void setPassword(String password) { 36 | this.password = password; 37 | } 38 | 39 | public String getStatus() { 40 | return status; 41 | } 42 | 43 | public void setStatus(String status) { 44 | this.status = status; 45 | } 46 | 47 | public double getBalance() { 48 | return balance; 49 | } 50 | 51 | public void setBalance(double balance) { 52 | this.balance = balance; 53 | } 54 | 55 | public String getMotto() { 56 | return motto; 57 | } 58 | 59 | public void setMotto(String motto) { 60 | this.motto = motto; 61 | } 62 | 63 | public int getIsRememberPWD() { 64 | return isRememberPWD; 65 | } 66 | 67 | public void setIsRememberPWD(int isRememberPWD) { 68 | this.isRememberPWD = isRememberPWD; 69 | } 70 | 71 | public int getIsAutoLogin() { 72 | return isAutoLogin; 73 | } 74 | 75 | public void setIsAutoLogin(int isAutoLogin) { 76 | this.isAutoLogin = isAutoLogin; 77 | } 78 | 79 | @Override 80 | public String toString() { 81 | return "[id="+id+";username="+this.username+";password="+password+";status="+status+";balance="+balance 82 | +";motto="+motto+";isRemeberPWD="+isRememberPWD+";isAutoLogin="+isAutoLogin+"]"; 83 | } 84 | 85 | public int getId() { 86 | return id; 87 | } 88 | 89 | public void setId(int id) { 90 | this.id = id; 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/bean/ViewSign.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.bean; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by bk120 on 2017/3/10. 7 | * 信号量 8 | * 携带一个int值和一个View值 9 | */ 10 | 11 | public class ViewSign { 12 | private View view; 13 | private int position; 14 | public ViewSign(View view,int i){ 15 | this.view=view; 16 | this.position=i; 17 | } 18 | 19 | public View getView() { 20 | return view; 21 | } 22 | 23 | public void setView(View view) { 24 | this.view = view; 25 | } 26 | 27 | public int getPosition() { 28 | return position; 29 | } 30 | 31 | public void setPosition(int position) { 32 | this.position = position; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/constants/JuHeConstant.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.constants; 2 | 3 | /** 4 | * Created by bk120 on 2017/3/16. 5 | * 来源于聚合数据的相关API 6 | */ 7 | 8 | public class JuHeConstant { 9 | //获取影视信息的KEY 10 | public static String KEY="0196571081b01dbffe9f5073e9a8efdd"; 11 | //查询所有城市的信息 12 | public static String CITY_INFO_URL="http://v.juhe.cn/movie/citys?key="+KEY; 13 | //正在热映的电影 14 | public static String CURRENT_PLAYING_FILM_URL="http://v.juhe.cn/movie/movies.today?key="+KEY+"&cityid="; 15 | //当前电影当前城市的所有支持该电影的影院信息 16 | //http://v.juhe.cn/movie/movies.cinemas?key=您申请的KEY&cityid=1&movieid=190465 17 | public static String CINEMA_SUP_FILM_URL="http://v.juhe.cn/movie/movies.cinemas?key="+KEY; 18 | //要购买的电影详情 19 | //http://v.juhe.cn/movie/query?key=您申请的key&movieid=137742 20 | public static String BUY_FILM_URL="http://v.juhe.cn/movie/query?key="+KEY+"&movieid="; 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/db/CommentDao.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.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 | import com.bk120.cinematicket.bean.Card; 9 | import com.bk120.cinematicket.bean.Comment; 10 | 11 | import java.util.ArrayList; 12 | import java.util.List; 13 | 14 | /** 15 | * Created by bk120 on 2017/3/12. 16 | * //对影片的评论表 17 | */ 18 | 19 | public class CommentDao { 20 | private String table="comment_info"; 21 | private MyOpenHelper helper; 22 | public CommentDao(Context c){ 23 | helper=new MyOpenHelper(c); 24 | } 25 | //插入一条数据 26 | public void insert(Comment comment){ 27 | SQLiteDatabase db = helper.getWritableDatabase(); 28 | ContentValues cv=new ContentValues(); 29 | cv.put("name",comment.getName()); 30 | cv.put("icon",comment.getIcon()); 31 | cv.put("describe",comment.getDescribe()); 32 | cv.put("time",comment.getTime()); 33 | db.insert(table,null,cv); 34 | db.close(); 35 | } 36 | //删除一条数据 37 | public void delete(Comment comment){ 38 | SQLiteDatabase db = helper.getWritableDatabase(); 39 | db.delete(table,"_id=?",new String[]{comment.getId()+""}); 40 | db.close(); 41 | } 42 | //查询所有影评信息 43 | public List selelctAll(){ 44 | List list=new ArrayList<>(); 45 | SQLiteDatabase db = helper.getReadableDatabase(); 46 | Cursor cursor = db.query(table, null, null, null, null, null, null, null); 47 | while(cursor.moveToNext()){ 48 | int id=cursor.getInt(0); 49 | String name=cursor.getString(1); 50 | int icon=cursor.getInt(2); 51 | String describe=cursor.getString(3); 52 | String time=cursor.getString(4); 53 | Comment u=new Comment(name,icon,describe,time); 54 | u.setId(id); 55 | list.add(u); 56 | } 57 | db.close(); 58 | return list; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/info: -------------------------------------------------------------------------------- 1 | 电影购票项目 2 | ////////////////////////////////////////基本模块//////////////////////////////////////////////////// 3 | 1:第一部分为地址选择,定位当前地址,获取当前城市上映的电影,影院地址,用户购票。其次对于影视的搜索播放 4 | 影视来源为优酷 5 | 2:第二部分为附近影院的获取,加载网页,当前位置的准确定位以及地图展示 6 | 3:第三部分社区模块为单击模块,主要是对电影的评论,当然系统内置一些评论 7 | 4:第四部分用户登录注册,个人信息修改,订单展示,钱包余额充值提现等为单机离线版---因为没有服务端支持,功能设置部分 8 | 聊天机器人等。 9 | ////////////////////////////数据库方面/////////////////////////////////////////////////////////// 10 | 1:用户表: 11 | 字段:用户名,登录状态,密码,账户余额,座右铭,是否记住密码,是否自动登录等---主键id自增长 12 | 2:钱包表 13 | 里面包含几张信用卡,支付宝余额,微信余额,QQ钱包余额,建行,农行,工行等-----主键用户id。 14 | 3:购买的电影票表 15 | 一张电影票信息包括 :电影编号,用户名,影院名,影院地址,价格,座位号,具体位置如2排05号 16 | 要求每个用户最多只能购买5张电影票 17 | 4:影评表,离线单击的全局的,用于所有用户的评论言论,当前用户发表评论等功能,删除评论等。 18 | ////////////////////////////////////问题方面/////////////////////////////////////////////////// 19 | 问题:对于数据库,查询数据是最好不要用int值来当做查询条件, 20 | 可能有问题,但对于更新和删除条件为int是可以的?比如用户表我们查询一个当前在线的用户 21 | status=1,即可,但必须将status类型改成String型才获取到值?为何? 22 | 问题:对于使用Drawerlayout时,若使用Fragment作为其侧边栏,对于一个Fragment时,显示隐藏侧边菜单 23 | 并不会执行fragment的相关生命周期,需手动控制。popupWindow和Dialog也同样不会触发。 24 | 问题:图片资源过大300kb,可能加载出问题 25 | 26 | 问题:java中对于double类型的运算可能存在精度丢失,只要其中一个数为double, 27 | 在运算是使用BigDecimal,并且构造器传参数尽量使用new BigDecimal(String)可以解决 28 | 29 | 问题:利用临时变量记录当前所在的主Fragment,并在第一次时使用 30 | 问题:对于电影和影院部分,其刷新可能异常--每次都刷新 31 | ///////////////////////////////////扩展功能/////////////////////////////////////////////////////// 32 | 1:对于账户的保护 手势密码的引入 33 | 2:机器人聊天功能 -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/turing/Aes.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.turing; 2 | 3 | import java.security.Key; 4 | import java.security.MessageDigest; 5 | 6 | import javax.crypto.Cipher; 7 | import javax.crypto.spec.IvParameterSpec; 8 | import javax.crypto.spec.SecretKeySpec; 9 | import org.apache.commons.codec.binary.Base64; 10 | /** 11 | * aes加密算法 12 | * @author 图灵机器人 13 | * 14 | */ 15 | public class Aes { 16 | 17 | private Key key; 18 | /** 19 | * AES CBC模式使用的Initialization Vector 20 | */ 21 | private IvParameterSpec iv; 22 | /** 23 | * Cipher 物件 24 | */ 25 | private Cipher cipher; 26 | 27 | /** 28 | * 构造方法 29 | * @param密钥 30 | */ 31 | public Aes(String strKey) { 32 | try { 33 | this.key = new SecretKeySpec(getHash("MD5", strKey), "AES"); 34 | this.iv = new IvParameterSpec(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 35 | 0, 0, 0, 0, 0, 0, 0, 0 }); 36 | this.cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); 37 | } catch (final Exception ex) { 38 | throw new RuntimeException(ex.getMessage()); 39 | } 40 | } 41 | 42 | /** 43 | * 加密方法 44 | * 45 | * 说明:采用128位 46 | * 47 | * @return 加密结果 48 | */ 49 | public String encrypt(String strContent) { 50 | try { 51 | byte[] data = strContent.getBytes("UTF-8"); 52 | cipher.init(Cipher.ENCRYPT_MODE, key, iv); 53 | byte[] encryptData = cipher.doFinal(data); 54 | String encryptResult = new String(Base64.encodeBase64( 55 | encryptData), "UTF-8"); 56 | return encryptResult; 57 | } catch (Exception ex) { 58 | throw new RuntimeException(ex.getMessage()); 59 | } 60 | } 61 | 62 | /** 63 | * 64 | * @param algorithm 65 | * @param text 66 | * @return 67 | */ 68 | private static byte[] getHash(String algorithm, String text) { 69 | try { 70 | byte[] bytes = text.getBytes("UTF-8"); 71 | final MessageDigest digest = MessageDigest.getInstance(algorithm); 72 | digest.update(bytes); 73 | return digest.digest(); 74 | } catch (final Exception ex) { 75 | throw new RuntimeException(ex.getMessage()); 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/turing/AesTest.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.turing; 2 | 3 | 4 | import com.alibaba.fastjson.JSONObject; 5 | 6 | /** 7 | * 加密请求测试类 8 | * @author 图灵机器人 9 | * 10 | */ 11 | public class AesTest { 12 | 13 | public static String testAes(String mes){ 14 | //图灵网站上的secret 15 | String secret = "7730738dfd04d7d5"; 16 | //图灵网站上的apiKey 17 | String apiKey = "8ca3c5fff532411691961cf3b749b532"; 18 | String cmd = mes;//测试用例 19 | //待加密的json数据 20 | String data = "{\"key\":\""+apiKey+"\",\"info\":\""+cmd+"\"}"; 21 | //获取时间戳 22 | String timestamp = String.valueOf(System.currentTimeMillis()); 23 | 24 | //生成密钥 25 | String keyParam = secret+timestamp+apiKey; 26 | String key = Md5.MD5(keyParam); 27 | 28 | //加密 29 | Aes mc = new Aes(key); 30 | data = mc.encrypt(data); 31 | 32 | //封装请求参数 33 | JSONObject json = new JSONObject(); 34 | json.put("key", apiKey); 35 | json.put("timestamp", timestamp); 36 | json.put("data", data); 37 | json.put("userid", "101"); 38 | //请求图灵api 39 | String result = PostServer.SendPost(json.toString(), "http://www.tuling123.com/openapi/api"); 40 | return result; 41 | } 42 | 43 | } -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/turing/Md5.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.turing; 2 | import java.security.MessageDigest; 3 | /** 4 | * md5加密 5 | * @author 图灵机器人 6 | * 7 | */ 8 | public class Md5 { 9 | /** 10 | * MD5加密算法 11 | * 12 | * 说明:32位加密算法 13 | * 14 | * @param 待加密的数据 15 | * @return 加密结果,全小写的字符串 16 | */ 17 | public static String MD5(String s) { 18 | char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 19 | 'a', 'b', 'c', 'd', 'e', 'f' }; 20 | try { 21 | byte[] btInput = s.getBytes("utf-8"); 22 | // 获得MD5摘要算法的 MessageDigest 对象 23 | MessageDigest mdInst = MessageDigest.getInstance("MD5"); 24 | // 使用指定的字节更新摘要 25 | mdInst.update(btInput); 26 | // 获得密文 27 | byte[] md = mdInst.digest(); 28 | // 把密文转换成十六进制的字符串形式 29 | int j = md.length; 30 | char str[] = new char[j * 2]; 31 | int k = 0; 32 | for (int i = 0; i < j; i++) { 33 | byte byte0 = md[i]; 34 | str[k++] = hexDigits[byte0 >>> 4 & 0xf]; 35 | str[k++] = hexDigits[byte0 & 0xf]; 36 | } 37 | return new String(str); 38 | } catch (Exception e) { 39 | e.printStackTrace(); 40 | return null; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/turing/PostServer.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.turing; 2 | 3 | 4 | import java.io.BufferedReader; 5 | import java.io.IOException; 6 | import java.io.InputStreamReader; 7 | import java.io.OutputStreamWriter; 8 | import java.net.HttpURLConnection; 9 | import java.net.URL; 10 | 11 | /** 12 | * HTTP工具类 13 | * @author 图灵机器人 14 | * 15 | */ 16 | public class PostServer { 17 | 18 | /** 19 | * 向后台发送post请求 20 | * @param param 21 | * @param url 22 | * @return 23 | */ 24 | public static String SendPost(String param, String url) { 25 | OutputStreamWriter out = null; 26 | BufferedReader in = null; 27 | String result = ""; 28 | try { 29 | URL realUrl = new URL(url); 30 | HttpURLConnection conn = (HttpURLConnection) realUrl 31 | .openConnection(); 32 | conn.setDoOutput(true); 33 | conn.setDoInput(true); 34 | conn.setUseCaches(false); 35 | conn.setRequestMethod("POST"); 36 | conn.setConnectTimeout(50000); 37 | conn.setReadTimeout(50000); 38 | conn.setRequestProperty("Content-Type", "application/json"); 39 | conn.setRequestProperty("Accept", "application/json"); 40 | conn.setRequestProperty("Authorization", "token"); 41 | conn.setRequestProperty("tag", "htc_new"); 42 | 43 | conn.connect(); 44 | 45 | out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); 46 | out.write(param); 47 | 48 | out.flush(); 49 | out.close(); 50 | // 51 | in = new BufferedReader(new InputStreamReader( 52 | conn.getInputStream(), "UTF-8")); 53 | String line = ""; 54 | while ((line = in.readLine()) != null) { 55 | result += line; 56 | } 57 | } catch (Exception e) { 58 | e.printStackTrace(); 59 | } finally { 60 | try { 61 | if (out != null) { 62 | out.close(); 63 | } 64 | if (in != null) { 65 | in.close(); 66 | } 67 | } catch (IOException ex) { 68 | ex.printStackTrace(); 69 | } 70 | } 71 | return result; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/utils/DateUtils.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.utils; 2 | 3 | import java.util.Calendar; 4 | 5 | /** 6 | * Created by bk120 on 2017/3/12. 7 | * 时间处理工具类 8 | */ 9 | 10 | public class DateUtils { 11 | //获取当前的日期 12 | public static String getCurrentDate(){ 13 | Calendar c=Calendar.getInstance(); 14 | int year=c.get(Calendar.YEAR); 15 | int month=c.get(Calendar.MONTH)+1; 16 | int day=c.get(Calendar.DAY_OF_MONTH); 17 | return year+"年"+month+"月"+day+"日"; 18 | } 19 | //获取当前的日期 20 | public static String getCurrentTime(){ 21 | Calendar c=Calendar.getInstance(); 22 | int year=c.get(Calendar.YEAR); 23 | int month=c.get(Calendar.MONTH)+1; 24 | int day=c.get(Calendar.DAY_OF_MONTH); 25 | int hour = c.get(Calendar.HOUR_OF_DAY); 26 | int minute = c.get(Calendar.MINUTE); 27 | int second = c.get(Calendar.SECOND); 28 | return year+"/"+month+"/"+day+" "+hour+":"+minute+":"+second; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/utils/KeyBoardUtils.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.utils; 2 | /** 3 | * 工具类,动态的改变软键盘的状态 4 | * 通过传入的宿主Activity和Handler来改变 5 | * 所需控件的位置 6 | */ 7 | import android.app.Activity; 8 | import android.graphics.Rect; 9 | import android.os.Handler; 10 | import android.os.Message; 11 | import android.util.DisplayMetrics; 12 | import android.view.ViewTreeObserver.OnGlobalLayoutListener; 13 | 14 | public class KeyBoardUtils { 15 | private Handler mHandler; 16 | private Activity mActivity; 17 | private OnGlobalLayoutListener mLayoutChangeListener; 18 | //当前的键盘状态:显示隐藏 19 | private boolean mIsSoftKeyboardShowing; 20 | private int screenHeight; 21 | public KeyBoardUtils(Activity a,Handler myHandler){ 22 | this.mActivity=a; 23 | this.mHandler=myHandler; 24 | getHeightDifference(); 25 | } 26 | public void getHeightDifference(){ 27 | DisplayMetrics dm=new DisplayMetrics(); 28 | mActivity.getWindowManager().getDefaultDisplay().getMetrics(dm); 29 | screenHeight=dm.heightPixels; 30 | //获取屏幕高度 31 | mIsSoftKeyboardShowing=false; 32 | mLayoutChangeListener=new OnGlobalLayoutListener() { 33 | 34 | @Override 35 | public void onGlobalLayout() { 36 | // TODO Auto-generated method stub 37 | //判断窗口可见区域大小 38 | Rect r=new Rect(); 39 | mActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(r); 40 | int heightDifference=screenHeight-(r.bottom-r.top); 41 | //由于获取的heightDifference在设置键盘是存在些许误差,适当调整距离 42 | heightDifference=heightDifference-50; 43 | boolean isKeyboardShowing=heightDifference>screenHeight/3; 44 | System.out.println(heightDifference+";"+mIsSoftKeyboardShowing); 45 | //软键盘的状态是否改变 46 | if(mIsSoftKeyboardShowing&&!isKeyboardShowing||(!mIsSoftKeyboardShowing&&isKeyboardShowing)){ 47 | mIsSoftKeyboardShowing=isKeyboardShowing; 48 | if(mIsSoftKeyboardShowing){ 49 | //键盘显示时 50 | Message m=Message.obtain(); 51 | m.what=0x110;m.arg1=heightDifference; 52 | mHandler.sendMessage(m); 53 | }else{ 54 | ///键盘隐藏时 55 | mHandler.sendEmptyMessage(0x111); 56 | } 57 | } 58 | } 59 | }; 60 | //当前注册布局全局监听 61 | mActivity.getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(mLayoutChangeListener); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/utils/SharePreferencesUtils.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.utils; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | import android.content.SharedPreferences.Editor; 6 | 7 | public class SharePreferencesUtils { 8 | private static SharedPreferences sp; 9 | private static Editor editor; 10 | private static String fileName="config";//���ļ��� 11 | //��Ų������͵�ֵ 12 | public static void putBoolean(Context context,String key,boolean value){ 13 | sp=context.getSharedPreferences(fileName, Context.MODE_PRIVATE); 14 | editor=sp.edit(); 15 | editor.putBoolean(key, value); 16 | editor.commit(); 17 | } 18 | //ȡ�ò���ֵ 19 | public static boolean getBoolean(Context context,String key,boolean defValue){ 20 | sp=context.getSharedPreferences(fileName, Context.MODE_PRIVATE); 21 | boolean result=sp.getBoolean(key, defValue); 22 | return result; 23 | } 24 | //���ַ��� 25 | public static void putString(Context c,String key,String value){ 26 | sp=c.getSharedPreferences(fileName, Context.MODE_PRIVATE); 27 | editor=sp.edit(); 28 | editor.putString(key, value); 29 | editor.commit(); 30 | } 31 | //ȡ�ַ��� 32 | public static String getString(Context c,String key,String defValue){ 33 | sp=c.getSharedPreferences(fileName, Context.MODE_PRIVATE); 34 | String result=sp.getString(key, defValue); 35 | return result; 36 | } 37 | //����һ��Intֵ 38 | public static void putInt(Context c,String key,int value){ 39 | sp=c.getSharedPreferences(fileName, Context.MODE_PRIVATE); 40 | editor=sp.edit(); 41 | editor.putInt(key, value); 42 | editor.commit(); 43 | } 44 | //ȡ��һ��Intֵ 45 | public static int getInt(Context c,String key,int defValue){ 46 | sp=c.getSharedPreferences(fileName, Context.MODE_PRIVATE); 47 | int result=sp.getInt(key, defValue); 48 | return result; 49 | } 50 | //����һ��Longֵ 51 | public static void putLong(Context c,String key,Long value){ 52 | sp=c.getSharedPreferences(fileName, Context.MODE_PRIVATE); 53 | editor=sp.edit(); 54 | editor.putLong(key, value); 55 | editor.commit(); 56 | } 57 | //ȡ��һ��Longֵ 58 | public static Long getLong(Context c,String key,Long defValue){ 59 | sp=c.getSharedPreferences(fileName, Context.MODE_PRIVATE); 60 | Long result=sp.getLong(key, defValue); 61 | return result; 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/zxing/camera/AutoFocusCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bk120.cinematicket.zxing.camera; 18 | 19 | import android.hardware.Camera; 20 | import android.os.Handler; 21 | import android.os.Message; 22 | import android.util.Log; 23 | 24 | final class AutoFocusCallback implements Camera.AutoFocusCallback { 25 | 26 | private static final String TAG = AutoFocusCallback.class.getSimpleName(); 27 | 28 | private static final long AUTOFOCUS_INTERVAL_MS = 1500L; 29 | 30 | private Handler autoFocusHandler; 31 | private int autoFocusMessage; 32 | 33 | void setHandler(Handler autoFocusHandler, int autoFocusMessage) { 34 | this.autoFocusHandler = autoFocusHandler; 35 | this.autoFocusMessage = autoFocusMessage; 36 | } 37 | 38 | public void onAutoFocus(boolean success, Camera camera) { 39 | if (autoFocusHandler != null) { 40 | Message message = autoFocusHandler.obtainMessage(autoFocusMessage, success); 41 | autoFocusHandler.sendMessageDelayed(message, AUTOFOCUS_INTERVAL_MS); 42 | autoFocusHandler = null; 43 | } else { 44 | Log.d(TAG, "Got auto-focus callback, but no handler for it"); 45 | } 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/zxing/camera/PreviewCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bk120.cinematicket.zxing.camera; 18 | 19 | import android.graphics.Point; 20 | import android.hardware.Camera; 21 | import android.os.Handler; 22 | import android.os.Message; 23 | import android.util.Log; 24 | 25 | final class PreviewCallback implements Camera.PreviewCallback { 26 | 27 | private static final String TAG = PreviewCallback.class.getSimpleName(); 28 | 29 | private final CameraConfigurationManager configManager; 30 | private final boolean useOneShotPreviewCallback; 31 | private Handler previewHandler; 32 | private int previewMessage; 33 | 34 | PreviewCallback(CameraConfigurationManager configManager, boolean useOneShotPreviewCallback) { 35 | this.configManager = configManager; 36 | this.useOneShotPreviewCallback = useOneShotPreviewCallback; 37 | } 38 | 39 | void setHandler(Handler previewHandler, int previewMessage) { 40 | this.previewHandler = previewHandler; 41 | this.previewMessage = previewMessage; 42 | } 43 | 44 | public void onPreviewFrame(byte[] data, Camera camera) { 45 | Point cameraResolution = configManager.getCameraResolution(); 46 | if (!useOneShotPreviewCallback) { 47 | camera.setPreviewCallback(null); 48 | } 49 | if (previewHandler != null) { 50 | Message message = previewHandler.obtainMessage(previewMessage, cameraResolution.x, 51 | cameraResolution.y, data); 52 | message.sendToTarget(); 53 | previewHandler = null; 54 | } else { 55 | Log.d(TAG, "Got preview callback, but no handler for it"); 56 | } 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/zxing/decoding/FinishListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bk120.cinematicket.zxing.decoding; 18 | 19 | import android.app.Activity; 20 | import android.content.DialogInterface; 21 | 22 | /** 23 | * Simple listener used to exit the app in a few cases. 24 | * 25 | */ 26 | public final class FinishListener 27 | implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener, Runnable { 28 | 29 | private final Activity activityToFinish; 30 | 31 | public FinishListener(Activity activityToFinish) { 32 | this.activityToFinish = activityToFinish; 33 | } 34 | 35 | public void onCancel(DialogInterface dialogInterface) { 36 | run(); 37 | } 38 | 39 | public void onClick(DialogInterface dialogInterface, int i) { 40 | run(); 41 | } 42 | 43 | public void run() { 44 | activityToFinish.finish(); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/zxing/decoding/InactivityTimer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bk120.cinematicket.zxing.decoding; 18 | 19 | import java.util.concurrent.Executors; 20 | import java.util.concurrent.ScheduledExecutorService; 21 | import java.util.concurrent.ScheduledFuture; 22 | import java.util.concurrent.ThreadFactory; 23 | import java.util.concurrent.TimeUnit; 24 | 25 | import android.app.Activity; 26 | 27 | /** 28 | * Finishes an activity after a period of inactivity. 29 | */ 30 | public final class InactivityTimer { 31 | 32 | private static final int INACTIVITY_DELAY_SECONDS = 5 * 60; 33 | 34 | private final ScheduledExecutorService inactivityTimer = 35 | Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory()); 36 | private final Activity activity; 37 | private ScheduledFuture inactivityFuture = null; 38 | 39 | public InactivityTimer(Activity activity) { 40 | this.activity = activity; 41 | onActivity(); 42 | } 43 | 44 | public void onActivity() { 45 | cancel(); 46 | inactivityFuture = inactivityTimer.schedule(new FinishListener(activity), 47 | INACTIVITY_DELAY_SECONDS, 48 | TimeUnit.SECONDS); 49 | } 50 | 51 | private void cancel() { 52 | if (inactivityFuture != null) { 53 | inactivityFuture.cancel(true); 54 | inactivityFuture = null; 55 | } 56 | } 57 | 58 | public void shutdown() { 59 | cancel(); 60 | inactivityTimer.shutdown(); 61 | } 62 | 63 | private static final class DaemonThreadFactory implements ThreadFactory { 64 | public Thread newThread(Runnable runnable) { 65 | Thread thread = new Thread(runnable); 66 | thread.setDaemon(true); 67 | return thread; 68 | } 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/zxing/encoding/EncodingHandler.java: -------------------------------------------------------------------------------- 1 | package com.bk120.cinematicket.zxing.encoding; 2 | 3 | import java.util.Hashtable; 4 | 5 | import android.graphics.Bitmap; 6 | 7 | import com.google.zxing.BarcodeFormat; 8 | import com.google.zxing.EncodeHintType; 9 | import com.google.zxing.MultiFormatWriter; 10 | import com.google.zxing.WriterException; 11 | import com.google.zxing.common.BitMatrix; 12 | /** 13 | * @author Ryan Tang 14 | * 15 | */ 16 | public final class EncodingHandler { 17 | private static final int BLACK = 0xff000000; 18 | 19 | public static Bitmap createQRCode(String str,int widthAndHeight) throws WriterException { 20 | Hashtable hints = new Hashtable(); 21 | hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); 22 | BitMatrix matrix = new MultiFormatWriter().encode(str, 23 | BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight); 24 | int width = matrix.getWidth(); 25 | int height = matrix.getHeight(); 26 | int[] pixels = new int[width * height]; 27 | 28 | for (int y = 0; y < height; y++) { 29 | for (int x = 0; x < width; x++) { 30 | if (matrix.get(x, y)) { 31 | pixels[y * width + x] = BLACK; 32 | } 33 | } 34 | } 35 | Bitmap bitmap = Bitmap.createBitmap(width, height, 36 | Bitmap.Config.ARGB_8888); 37 | bitmap.setPixels(pixels, 0, width, 0, 0, width, height); 38 | return bitmap; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/bk120/cinematicket/zxing/view/ViewfinderResultPointCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.bk120.cinematicket.zxing.view; 18 | 19 | import com.google.zxing.ResultPoint; 20 | import com.google.zxing.ResultPointCallback; 21 | 22 | public final class ViewfinderResultPointCallback implements ResultPointCallback { 23 | 24 | private final ViewfinderView viewfinderView; 25 | 26 | public ViewfinderResultPointCallback(ViewfinderView viewfinderView) { 27 | this.viewfinderView = viewfinderView; 28 | } 29 | 30 | public void foundPossibleResultPoint(ResultPoint point) { 31 | viewfinderView.addPossibleResultPoint(point); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/res/anim/acrivity1_push_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/anim/acrivity2_push_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/acrivity3_push_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/anim/acrivity4_push_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/pop_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/pop_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/addressactivity_et_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/addressactivity_recycleview_item_selelctor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/addressactivity_recycleview_item_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/addressactivity_recycleview_item_shape_nor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/addressactivity_searchbtn_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/addressactivity_searchbtn_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/addressactivity_searchbtn_shape_nor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/card_update_item_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/chair_tuijian_shape1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/chair_tuijian_shape2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/check_button_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/src/main/res/drawable/check_button_off.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/check_button_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BK120/CinemaTicket/1370de8413ce895e2444cd17bbc340288fbb6f96/app/src/main/res/drawable/check_button_on.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dianying_fragment_toolbar_drag_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dianying_fragment_toolbar_drag_shape_nor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dianying_fragment_toolbar_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drawer_right_item_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/location_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/main_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/setting_activity_gesture_swich.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/zhaopain_item_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/layout/aboutme_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 17 | 18 | 24 | 36 | 47 | 48 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_cinema_sup_film.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 14 | 22 | 32 | 33 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_flash.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_gesture_lock.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 15 | 23 | 33 | 34 | 35 | 45 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_map_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_play_film.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 18 | 27 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_scan.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 17 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_ticket_order.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 22 | 32 | 33 | 42 | 43 | -------------------------------------------------------------------------------- /app/src/main/res/layout/add_balance_recycleview_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 10 | 15 | 23 | 35 | 43 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /app/src/main/res/layout/addressitem.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 13 | 20 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/camera.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 16 | 17 | 22 | 23 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/layout/card_item_addmoney_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 14 | 15 | 25 | 31 |