├── .gitignore
├── LICENSE
├── README.md
└── atires
├── .classpath
├── .project
├── .settings
└── org.eclipse.jdt.core.prefs
├── AndroidManifest.xml
├── ant.properties
├── assets
├── chi_sim.traineddata
├── eng.traineddata
├── osd.traineddata
├── test_ocr.jpg
└── test_ocr_.jpg
├── bin
├── R.txt
└── jarlist.cache
├── gen
├── android
│ └── support
│ │ └── v7
│ │ └── appcompat
│ │ └── R.java
└── com
│ └── aw
│ └── scaner
│ ├── BuildConfig.java
│ └── R.java
├── ic_launcher-web.png
├── lint.xml
├── proguard-project.txt
├── project.properties
├── res
├── drawable-hdpi
│ ├── bg_know.png
│ ├── bg_replace.png
│ ├── bg_share.png
│ ├── button_normal.png
│ ├── button_pressed.png
│ ├── camera_normal.png
│ ├── camera_pressed.png
│ ├── ic_launcher.png
│ └── tires.png
├── layout
│ ├── activity_camera.xml
│ ├── activity_result_text.xml
│ ├── img_btn_cam.xml
│ └── img_btn_tire.xml
├── menu
│ └── main.xml
├── values-v11
│ └── styles.xml
├── values-v14
│ └── styles.xml
├── values-w820dp
│ └── dimens.xml
└── values
│ ├── color.xml
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
└── src
└── com
└── aw
└── scaner
├── AWSqliteDB.java
├── MuskSurfaceDraw.java
├── ResultTextActivity.java
├── ScanVINActivity.java
└── VINManager.java
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 |
3 | # Package Files #
4 | *.jar
5 | *.war
6 | *.ear
7 | *.bak
8 | *.tmp
9 |
10 | .metadata
11 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright {yyyy} {name of copyright owner}
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # textScanner
2 | * Android下拍照识别文字的工具。
3 | * [App下载](http://yun.baidu.com/share/link?shareid=4096371052&uk=706459533)
4 | =======
5 |
6 | # 概述 #
7 | * 类似 微信>>发现>>扫一扫>>翻译 功能(无翻译,不过对识别文字的结果传给google或baidu的翻译web很容易实现了)。
8 | * 程序能够自动适应竖/横屏幕,屏幕上被识别的区域亮色可见拍摄对象,其它区域半透明可见拍摄对象。触摸屏幕可调整识别区域的亮色矩形大小。识别依赖的数据,使用的是下载的tesseract带的默认训练数据,中文准确率不好,英文和数字的依赖拍照的效果了。
9 |
10 | * 图像识别用的是 tesseract、tesseract-android-tools. 初次运行程序时会把识别用的中/英数据,解压出来(有进度提示)。这部分代码,数据从 code.google.com和github.com获取。 相机的使用处理参考了CSDN上 yanzi1225627的博客内容(android开发分类下的 android 多媒体和相机详解1至11 http://blog.csdn.net/niu_gao/article/details/7570967)。
11 |
12 | ## 开发环境 ##
13 | 使用Eclipse开发, 在windows7和Ubuntu14下都编译运行,安装到android物理机过。android-support-v7-appcompat,tesserac和tesseract-android-tools代码资源未放进来。
14 |
15 | ## 补充说明 ##
16 | 本项目的初衷是和朋友聊创业的Demo(关于汽车的,所以代码里有atires---android tires),那个阶段的创业尝试已经放弃了。自己觉得Demo里做的一个小环节---手机随时随地拍照然后识别文字的代码有点价值,所以剥离出来,便于分享,供人使用了。
17 |
--------------------------------------------------------------------------------
/atires/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/atires/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | atires
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.jdt.core.javabuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.ApkBuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/atires/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
3 | org.eclipse.jdt.core.compiler.compliance=1.6
4 | org.eclipse.jdt.core.compiler.source=1.6
5 |
--------------------------------------------------------------------------------
/atires/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/atires/ant.properties:
--------------------------------------------------------------------------------
1 | # This file is used to override default values used by the Ant build system.
2 | #
3 | # This file must be checked into Version Control Systems, as it is
4 | # integral to the build system of your project.
5 |
6 | # This file is only used by the Ant script.
7 |
8 | # You can use this to override default values such as
9 | # 'source.dir' for the location of your java source folder and
10 | # 'out.dir' for the location of your output folder.
11 |
12 | # You can also use it define how the release builds are signed by declaring
13 | # the following properties:
14 | # 'key.store' for the location of your keystore and
15 | # 'key.alias' for the name of the key to use.
16 | # The password will be asked during the build when you use the 'release' target.
17 |
18 |
--------------------------------------------------------------------------------
/atires/assets/chi_sim.traineddata:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/assets/chi_sim.traineddata
--------------------------------------------------------------------------------
/atires/assets/eng.traineddata:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/assets/eng.traineddata
--------------------------------------------------------------------------------
/atires/assets/osd.traineddata:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/assets/osd.traineddata
--------------------------------------------------------------------------------
/atires/assets/test_ocr.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/assets/test_ocr.jpg
--------------------------------------------------------------------------------
/atires/assets/test_ocr_.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/assets/test_ocr_.jpg
--------------------------------------------------------------------------------
/atires/bin/R.txt:
--------------------------------------------------------------------------------
1 | int anim abc_fade_in 0x7f040000
2 | int anim abc_fade_out 0x7f040001
3 | int anim abc_slide_in_bottom 0x7f040002
4 | int anim abc_slide_in_top 0x7f040003
5 | int anim abc_slide_out_bottom 0x7f040004
6 | int anim abc_slide_out_top 0x7f040005
7 | int attr actionBarDivider 0x7f01000f
8 | int attr actionBarItemBackground 0x7f010010
9 | int attr actionBarSize 0x7f01000e
10 | int attr actionBarSplitStyle 0x7f01000c
11 | int attr actionBarStyle 0x7f01000b
12 | int attr actionBarTabBarStyle 0x7f010008
13 | int attr actionBarTabStyle 0x7f010007
14 | int attr actionBarTabTextStyle 0x7f010009
15 | int attr actionBarWidgetTheme 0x7f01000d
16 | int attr actionButtonStyle 0x7f010016
17 | int attr actionDropDownStyle 0x7f010047
18 | int attr actionLayout 0x7f01004e
19 | int attr actionMenuTextAppearance 0x7f010011
20 | int attr actionMenuTextColor 0x7f010012
21 | int attr actionModeBackground 0x7f01003c
22 | int attr actionModeCloseButtonStyle 0x7f01003b
23 | int attr actionModeCloseDrawable 0x7f01003e
24 | int attr actionModeCopyDrawable 0x7f010040
25 | int attr actionModeCutDrawable 0x7f01003f
26 | int attr actionModeFindDrawable 0x7f010044
27 | int attr actionModePasteDrawable 0x7f010041
28 | int attr actionModePopupWindowStyle 0x7f010046
29 | int attr actionModeSelectAllDrawable 0x7f010042
30 | int attr actionModeShareDrawable 0x7f010043
31 | int attr actionModeSplitBackground 0x7f01003d
32 | int attr actionModeStyle 0x7f01003a
33 | int attr actionModeWebSearchDrawable 0x7f010045
34 | int attr actionOverflowButtonStyle 0x7f01000a
35 | int attr actionProviderClass 0x7f010050
36 | int attr actionViewClass 0x7f01004f
37 | int attr activityChooserViewStyle 0x7f01006c
38 | int attr background 0x7f01002f
39 | int attr backgroundSplit 0x7f010031
40 | int attr backgroundStacked 0x7f010030
41 | int attr buttonBarButtonStyle 0x7f010018
42 | int attr buttonBarStyle 0x7f010017
43 | int attr customNavigationLayout 0x7f010032
44 | int attr disableChildrenWhenDisabled 0x7f010054
45 | int attr displayOptions 0x7f010028
46 | int attr divider 0x7f01002e
47 | int attr dividerHorizontal 0x7f01001b
48 | int attr dividerPadding 0x7f010056
49 | int attr dividerVertical 0x7f01001a
50 | int attr dropDownListViewStyle 0x7f010021
51 | int attr dropdownListPreferredItemHeight 0x7f010048
52 | int attr expandActivityOverflowButtonDrawable 0x7f01006b
53 | int attr height 0x7f010026
54 | int attr homeAsUpIndicator 0x7f010013
55 | int attr homeLayout 0x7f010033
56 | int attr icon 0x7f01002c
57 | int attr iconifiedByDefault 0x7f01005a
58 | int attr indeterminateProgressStyle 0x7f010035
59 | int attr initialActivityCount 0x7f01006a
60 | int attr isLightTheme 0x7f010059
61 | int attr itemPadding 0x7f010037
62 | int attr listChoiceBackgroundIndicator 0x7f01004c
63 | int attr listPopupWindowStyle 0x7f010022
64 | int attr listPreferredItemHeight 0x7f01001c
65 | int attr listPreferredItemHeightLarge 0x7f01001e
66 | int attr listPreferredItemHeightSmall 0x7f01001d
67 | int attr listPreferredItemPaddingLeft 0x7f01001f
68 | int attr listPreferredItemPaddingRight 0x7f010020
69 | int attr logo 0x7f01002d
70 | int attr navigationMode 0x7f010027
71 | int attr paddingEnd 0x7f010039
72 | int attr paddingStart 0x7f010038
73 | int attr panelMenuListTheme 0x7f01004b
74 | int attr panelMenuListWidth 0x7f01004a
75 | int attr popupMenuStyle 0x7f010049
76 | int attr popupPromptView 0x7f010053
77 | int attr progressBarPadding 0x7f010036
78 | int attr progressBarStyle 0x7f010034
79 | int attr prompt 0x7f010051
80 | int attr queryHint 0x7f01005b
81 | int attr searchDropdownBackground 0x7f01005c
82 | int attr searchResultListItemHeight 0x7f010065
83 | int attr searchViewAutoCompleteTextView 0x7f010069
84 | int attr searchViewCloseIcon 0x7f01005d
85 | int attr searchViewEditQuery 0x7f010061
86 | int attr searchViewEditQueryBackground 0x7f010062
87 | int attr searchViewGoIcon 0x7f01005e
88 | int attr searchViewSearchIcon 0x7f01005f
89 | int attr searchViewTextField 0x7f010063
90 | int attr searchViewTextFieldRight 0x7f010064
91 | int attr searchViewVoiceIcon 0x7f010060
92 | int attr selectableItemBackground 0x7f010019
93 | int attr showAsAction 0x7f01004d
94 | int attr showDividers 0x7f010055
95 | int attr spinnerDropDownItemStyle 0x7f010058
96 | int attr spinnerMode 0x7f010052
97 | int attr spinnerStyle 0x7f010057
98 | int attr subtitle 0x7f010029
99 | int attr subtitleTextStyle 0x7f01002b
100 | int attr textAllCaps 0x7f01006d
101 | int attr textAppearanceLargePopupMenu 0x7f010014
102 | int attr textAppearanceListItem 0x7f010023
103 | int attr textAppearanceListItemSmall 0x7f010024
104 | int attr textAppearanceSearchResultSubtitle 0x7f010067
105 | int attr textAppearanceSearchResultTitle 0x7f010066
106 | int attr textAppearanceSmallPopupMenu 0x7f010015
107 | int attr textColorSearchUrl 0x7f010068
108 | int attr title 0x7f010025
109 | int attr titleTextStyle 0x7f01002a
110 | int attr windowActionBar 0x7f010000
111 | int attr windowActionBarOverlay 0x7f010001
112 | int attr windowFixedHeightMajor 0x7f010006
113 | int attr windowFixedHeightMinor 0x7f010004
114 | int attr windowFixedWidthMajor 0x7f010003
115 | int attr windowFixedWidthMinor 0x7f010005
116 | int attr windowSplitActionBar 0x7f010002
117 | int bool abc_action_bar_embed_tabs_pre_jb 0x7f050000
118 | int bool abc_action_bar_expanded_action_views_exclusive 0x7f050001
119 | int bool abc_config_actionMenuItemAllCaps 0x7f050005
120 | int bool abc_config_allowActionMenuItemTextWithIcon 0x7f050004
121 | int bool abc_config_showMenuShortcutsWhenKeyboardPresent 0x7f050003
122 | int bool abc_split_action_bar_is_narrow 0x7f050002
123 | int color abc_search_url_text_holo 0x7f060003
124 | int color abc_search_url_text_normal 0x7f060000
125 | int color abc_search_url_text_pressed 0x7f060002
126 | int color abc_search_url_text_selected 0x7f060001
127 | int dimen abc_action_bar_default_height 0x7f070002
128 | int dimen abc_action_bar_icon_vertical_padding 0x7f070003
129 | int dimen abc_action_bar_progress_bar_size 0x7f07000a
130 | int dimen abc_action_bar_stacked_max_height 0x7f070009
131 | int dimen abc_action_bar_stacked_tab_max_width 0x7f070001
132 | int dimen abc_action_bar_subtitle_bottom_margin 0x7f070007
133 | int dimen abc_action_bar_subtitle_text_size 0x7f070005
134 | int dimen abc_action_bar_subtitle_top_margin 0x7f070006
135 | int dimen abc_action_bar_title_text_size 0x7f070004
136 | int dimen abc_action_button_min_width 0x7f070008
137 | int dimen abc_config_prefDialogWidth 0x7f070000
138 | int dimen abc_dropdownitem_icon_width 0x7f070010
139 | int dimen abc_dropdownitem_text_padding_left 0x7f07000e
140 | int dimen abc_dropdownitem_text_padding_right 0x7f07000f
141 | int dimen abc_panel_menu_list_width 0x7f07000b
142 | int dimen abc_search_view_preferred_width 0x7f07000d
143 | int dimen abc_search_view_text_min_width 0x7f07000c
144 | int dimen activity_horizontal_margin 0x7f070015
145 | int dimen activity_vertical_margin 0x7f070016
146 | int dimen dialog_fixed_height_major 0x7f070013
147 | int dimen dialog_fixed_height_minor 0x7f070014
148 | int dimen dialog_fixed_width_major 0x7f070011
149 | int dimen dialog_fixed_width_minor 0x7f070012
150 | int drawable abc_ab_bottom_solid_dark_holo 0x7f020000
151 | int drawable abc_ab_bottom_solid_light_holo 0x7f020001
152 | int drawable abc_ab_bottom_transparent_dark_holo 0x7f020002
153 | int drawable abc_ab_bottom_transparent_light_holo 0x7f020003
154 | int drawable abc_ab_share_pack_holo_dark 0x7f020004
155 | int drawable abc_ab_share_pack_holo_light 0x7f020005
156 | int drawable abc_ab_solid_dark_holo 0x7f020006
157 | int drawable abc_ab_solid_light_holo 0x7f020007
158 | int drawable abc_ab_stacked_solid_dark_holo 0x7f020008
159 | int drawable abc_ab_stacked_solid_light_holo 0x7f020009
160 | int drawable abc_ab_stacked_transparent_dark_holo 0x7f02000a
161 | int drawable abc_ab_stacked_transparent_light_holo 0x7f02000b
162 | int drawable abc_ab_transparent_dark_holo 0x7f02000c
163 | int drawable abc_ab_transparent_light_holo 0x7f02000d
164 | int drawable abc_cab_background_bottom_holo_dark 0x7f02000e
165 | int drawable abc_cab_background_bottom_holo_light 0x7f02000f
166 | int drawable abc_cab_background_top_holo_dark 0x7f020010
167 | int drawable abc_cab_background_top_holo_light 0x7f020011
168 | int drawable abc_ic_ab_back_holo_dark 0x7f020012
169 | int drawable abc_ic_ab_back_holo_light 0x7f020013
170 | int drawable abc_ic_cab_done_holo_dark 0x7f020014
171 | int drawable abc_ic_cab_done_holo_light 0x7f020015
172 | int drawable abc_ic_clear 0x7f020016
173 | int drawable abc_ic_clear_disabled 0x7f020017
174 | int drawable abc_ic_clear_holo_light 0x7f020018
175 | int drawable abc_ic_clear_normal 0x7f020019
176 | int drawable abc_ic_clear_search_api_disabled_holo_light 0x7f02001a
177 | int drawable abc_ic_clear_search_api_holo_light 0x7f02001b
178 | int drawable abc_ic_commit_search_api_holo_dark 0x7f02001c
179 | int drawable abc_ic_commit_search_api_holo_light 0x7f02001d
180 | int drawable abc_ic_go 0x7f02001e
181 | int drawable abc_ic_go_search_api_holo_light 0x7f02001f
182 | int drawable abc_ic_menu_moreoverflow_normal_holo_dark 0x7f020020
183 | int drawable abc_ic_menu_moreoverflow_normal_holo_light 0x7f020021
184 | int drawable abc_ic_menu_share_holo_dark 0x7f020022
185 | int drawable abc_ic_menu_share_holo_light 0x7f020023
186 | int drawable abc_ic_search 0x7f020024
187 | int drawable abc_ic_search_api_holo_light 0x7f020025
188 | int drawable abc_ic_voice_search 0x7f020026
189 | int drawable abc_ic_voice_search_api_holo_light 0x7f020027
190 | int drawable abc_item_background_holo_dark 0x7f020028
191 | int drawable abc_item_background_holo_light 0x7f020029
192 | int drawable abc_list_divider_holo_dark 0x7f02002a
193 | int drawable abc_list_divider_holo_light 0x7f02002b
194 | int drawable abc_list_focused_holo 0x7f02002c
195 | int drawable abc_list_longpressed_holo 0x7f02002d
196 | int drawable abc_list_pressed_holo_dark 0x7f02002e
197 | int drawable abc_list_pressed_holo_light 0x7f02002f
198 | int drawable abc_list_selector_background_transition_holo_dark 0x7f020030
199 | int drawable abc_list_selector_background_transition_holo_light 0x7f020031
200 | int drawable abc_list_selector_disabled_holo_dark 0x7f020032
201 | int drawable abc_list_selector_disabled_holo_light 0x7f020033
202 | int drawable abc_list_selector_holo_dark 0x7f020034
203 | int drawable abc_list_selector_holo_light 0x7f020035
204 | int drawable abc_menu_dropdown_panel_holo_dark 0x7f020036
205 | int drawable abc_menu_dropdown_panel_holo_light 0x7f020037
206 | int drawable abc_menu_hardkey_panel_holo_dark 0x7f020038
207 | int drawable abc_menu_hardkey_panel_holo_light 0x7f020039
208 | int drawable abc_search_dropdown_dark 0x7f02003a
209 | int drawable abc_search_dropdown_light 0x7f02003b
210 | int drawable abc_spinner_ab_default_holo_dark 0x7f02003c
211 | int drawable abc_spinner_ab_default_holo_light 0x7f02003d
212 | int drawable abc_spinner_ab_disabled_holo_dark 0x7f02003e
213 | int drawable abc_spinner_ab_disabled_holo_light 0x7f02003f
214 | int drawable abc_spinner_ab_focused_holo_dark 0x7f020040
215 | int drawable abc_spinner_ab_focused_holo_light 0x7f020041
216 | int drawable abc_spinner_ab_holo_dark 0x7f020042
217 | int drawable abc_spinner_ab_holo_light 0x7f020043
218 | int drawable abc_spinner_ab_pressed_holo_dark 0x7f020044
219 | int drawable abc_spinner_ab_pressed_holo_light 0x7f020045
220 | int drawable abc_tab_indicator_ab_holo 0x7f020046
221 | int drawable abc_tab_selected_focused_holo 0x7f020047
222 | int drawable abc_tab_selected_holo 0x7f020048
223 | int drawable abc_tab_selected_pressed_holo 0x7f020049
224 | int drawable abc_tab_unselected_pressed_holo 0x7f02004a
225 | int drawable abc_textfield_search_default_holo_dark 0x7f02004b
226 | int drawable abc_textfield_search_default_holo_light 0x7f02004c
227 | int drawable abc_textfield_search_right_default_holo_dark 0x7f02004d
228 | int drawable abc_textfield_search_right_default_holo_light 0x7f02004e
229 | int drawable abc_textfield_search_right_selected_holo_dark 0x7f02004f
230 | int drawable abc_textfield_search_right_selected_holo_light 0x7f020050
231 | int drawable abc_textfield_search_selected_holo_dark 0x7f020051
232 | int drawable abc_textfield_search_selected_holo_light 0x7f020052
233 | int drawable abc_textfield_searchview_holo_dark 0x7f020053
234 | int drawable abc_textfield_searchview_holo_light 0x7f020054
235 | int drawable abc_textfield_searchview_right_holo_dark 0x7f020055
236 | int drawable abc_textfield_searchview_right_holo_light 0x7f020056
237 | int drawable bg_know 0x7f020057
238 | int drawable bg_replace 0x7f020058
239 | int drawable bg_share 0x7f020059
240 | int drawable black 0x7f020065
241 | int drawable blue 0x7f020066
242 | int drawable button_normal 0x7f02005a
243 | int drawable button_pressed 0x7f02005b
244 | int drawable camera_normal 0x7f02005c
245 | int drawable camera_pressed 0x7f02005d
246 | int drawable cyan 0x7f020067
247 | int drawable darkgray 0x7f020063
248 | int drawable dkgray 0x7f020060
249 | int drawable gray 0x7f020068
250 | int drawable green 0x7f020069
251 | int drawable ic_launcher 0x7f02005e
252 | int drawable lightgreen 0x7f020064
253 | int drawable ltgray 0x7f02006a
254 | int drawable magenta 0x7f02006b
255 | int drawable red 0x7f02006c
256 | int drawable tires 0x7f02005f
257 | int drawable transparent 0x7f02006d
258 | int drawable white 0x7f020062
259 | int drawable yello 0x7f020061
260 | int drawable yellow 0x7f02006e
261 | int id action_bar 0x7f09001c
262 | int id action_bar_activity_content 0x7f090001
263 | int id action_bar_container 0x7f09001b
264 | int id action_bar_overlay_layout 0x7f09001f
265 | int id action_bar_root 0x7f09001a
266 | int id action_bar_subtitle 0x7f090023
267 | int id action_bar_title 0x7f090022
268 | int id action_context_bar 0x7f09001d
269 | int id action_menu_divider 0x7f090002
270 | int id action_menu_presenter 0x7f090003
271 | int id action_mode_close_button 0x7f090024
272 | int id action_settings 0x7f090046
273 | int id activity_chooser_view_content 0x7f090025
274 | int id always 0x7f09000f
275 | int id beginning 0x7f090016
276 | int id btn_scan_chi_sim 0x7f090041
277 | int id btn_scan_digit 0x7f090040
278 | int id btn_scan_en 0x7f090042
279 | int id btn_scan_focus 0x7f09003f
280 | int id btn_scan_vin 0x7f090043
281 | int id checkbox 0x7f09002d
282 | int id collapseActionView 0x7f090010
283 | int id default_activity_button 0x7f090028
284 | int id dialog 0x7f090014
285 | int id disableHome 0x7f090009
286 | int id dropdown 0x7f090015
287 | int id edit_query 0x7f090030
288 | int id end 0x7f090017
289 | int id expand_activities_button 0x7f090026
290 | int id expanded_menu 0x7f09002c
291 | int id home 0x7f090000
292 | int id homeAsUp 0x7f09000a
293 | int id icon 0x7f09002a
294 | int id ifRoom 0x7f090011
295 | int id image 0x7f090027
296 | int id listMode 0x7f090006
297 | int id list_item 0x7f090029
298 | int id mDraw 0x7f09003e
299 | int id middle 0x7f090018
300 | int id myFramelayout 0x7f09003c
301 | int id never 0x7f090012
302 | int id none 0x7f090019
303 | int id normal 0x7f090007
304 | int id ocr_ok_result 0x7f090044
305 | int id preview_cam 0x7f09003d
306 | int id progress_circular 0x7f090004
307 | int id progress_horizontal 0x7f090005
308 | int id radio 0x7f09002f
309 | int id return_button 0x7f090045
310 | int id search_badge 0x7f090032
311 | int id search_bar 0x7f090031
312 | int id search_button 0x7f090033
313 | int id search_close_btn 0x7f090038
314 | int id search_edit_frame 0x7f090034
315 | int id search_go_btn 0x7f09003a
316 | int id search_mag_icon 0x7f090035
317 | int id search_plate 0x7f090036
318 | int id search_src_text 0x7f090037
319 | int id search_voice_btn 0x7f09003b
320 | int id shortcut 0x7f09002e
321 | int id showCustom 0x7f09000b
322 | int id showHome 0x7f09000c
323 | int id showTitle 0x7f09000d
324 | int id split_action_bar 0x7f09001e
325 | int id submit_area 0x7f090039
326 | int id tabMode 0x7f090008
327 | int id title 0x7f09002b
328 | int id top_action_bar 0x7f090020
329 | int id up 0x7f090021
330 | int id useLogo 0x7f09000e
331 | int id withText 0x7f090013
332 | int integer abc_max_action_buttons 0x7f080000
333 | int layout abc_action_bar_decor 0x7f030000
334 | int layout abc_action_bar_decor_include 0x7f030001
335 | int layout abc_action_bar_decor_overlay 0x7f030002
336 | int layout abc_action_bar_home 0x7f030003
337 | int layout abc_action_bar_tab 0x7f030004
338 | int layout abc_action_bar_tabbar 0x7f030005
339 | int layout abc_action_bar_title_item 0x7f030006
340 | int layout abc_action_bar_view_list_nav_layout 0x7f030007
341 | int layout abc_action_menu_item_layout 0x7f030008
342 | int layout abc_action_menu_layout 0x7f030009
343 | int layout abc_action_mode_bar 0x7f03000a
344 | int layout abc_action_mode_close_item 0x7f03000b
345 | int layout abc_activity_chooser_view 0x7f03000c
346 | int layout abc_activity_chooser_view_include 0x7f03000d
347 | int layout abc_activity_chooser_view_list_item 0x7f03000e
348 | int layout abc_expanded_menu_layout 0x7f03000f
349 | int layout abc_list_menu_item_checkbox 0x7f030010
350 | int layout abc_list_menu_item_icon 0x7f030011
351 | int layout abc_list_menu_item_layout 0x7f030012
352 | int layout abc_list_menu_item_radio 0x7f030013
353 | int layout abc_popup_menu_item_layout 0x7f030014
354 | int layout abc_search_dropdown_item_icons_2line 0x7f030015
355 | int layout abc_search_view 0x7f030016
356 | int layout abc_simple_decor 0x7f030017
357 | int layout activity_camera 0x7f030018
358 | int layout activity_result_text 0x7f030019
359 | int layout img_btn_cam 0x7f03001a
360 | int layout img_btn_tire 0x7f03001b
361 | int layout support_simple_spinner_dropdown_item 0x7f03001c
362 | int menu main 0x7f0c0000
363 | int string abc_action_bar_home_description 0x7f0a0001
364 | int string abc_action_bar_up_description 0x7f0a0002
365 | int string abc_action_menu_overflow_description 0x7f0a0003
366 | int string abc_action_mode_done 0x7f0a0000
367 | int string abc_activity_chooser_view_see_all 0x7f0a000a
368 | int string abc_activitychooserview_choose_application 0x7f0a0009
369 | int string abc_searchview_description_clear 0x7f0a0006
370 | int string abc_searchview_description_query 0x7f0a0005
371 | int string abc_searchview_description_search 0x7f0a0004
372 | int string abc_searchview_description_submit 0x7f0a0007
373 | int string abc_searchview_description_voice 0x7f0a0008
374 | int string abc_shareactionprovider_share_with 0x7f0a000c
375 | int string abc_shareactionprovider_share_with_application 0x7f0a000b
376 | int string action_settings 0x7f0a000e
377 | int string app_name 0x7f0a000d
378 | int string btn_text_return 0x7f0a0026
379 | int string cam_shutter_tips 0x7f0a001d
380 | int string default_test_pic_tips 0x7f0a0024
381 | int string know 0x7f0a000f
382 | int string ocr_failed 0x7f0a0021
383 | int string ocr_finish_tips 0x7f0a001f
384 | int string ocr_ok_result 0x7f0a0020
385 | int string ocr_vin_tips 0x7f0a001e
386 | int string replace 0x7f0a0010
387 | int string share 0x7f0a0011
388 | int string test_pic_file 0x7f0a0022
389 | int string test_pic_file1 0x7f0a0023
390 | int string vin_desc 0x7f0a0014
391 | int string vin_format_error_tips 0x7f0a0025
392 | int string vin_hint 0x7f0a0012
393 | int string vin_input 0x7f0a0013
394 | int string vin_input_query 0x7f0a0016
395 | int string vin_req_code 0x7f0a0027
396 | int string vin_ret_code 0x7f0a0028
397 | int string vin_scan 0x7f0a0017
398 | int string vin_scan_chi_sim 0x7f0a001a
399 | int string vin_scan_desc 0x7f0a0015
400 | int string vin_scan_digit 0x7f0a0019
401 | int string vin_scan_en 0x7f0a001b
402 | int string vin_scan_focus 0x7f0a0018
403 | int string vin_scan_vin 0x7f0a001c
404 | int style AppBaseTheme 0x7f0b008b
405 | int style AppTheme 0x7f0b008c
406 | int style TextAppearance_AppCompat_Base_CompactMenu_Dialog 0x7f0b0063
407 | int style TextAppearance_AppCompat_Base_SearchResult 0x7f0b006d
408 | int style TextAppearance_AppCompat_Base_SearchResult_Subtitle 0x7f0b006f
409 | int style TextAppearance_AppCompat_Base_SearchResult_Title 0x7f0b006e
410 | int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Large 0x7f0b0069
411 | int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Small 0x7f0b006a
412 | int style TextAppearance_AppCompat_Light_Base_SearchResult 0x7f0b0070
413 | int style TextAppearance_AppCompat_Light_Base_SearchResult_Subtitle 0x7f0b0072
414 | int style TextAppearance_AppCompat_Light_Base_SearchResult_Title 0x7f0b0071
415 | int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Large 0x7f0b006b
416 | int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Small 0x7f0b006c
417 | int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x7f0b0035
418 | int style TextAppearance_AppCompat_Light_SearchResult_Title 0x7f0b0034
419 | int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f0b0030
420 | int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f0b0031
421 | int style TextAppearance_AppCompat_SearchResult_Subtitle 0x7f0b0033
422 | int style TextAppearance_AppCompat_SearchResult_Title 0x7f0b0032
423 | int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f0b001a
424 | int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f0b0006
425 | int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f0b0008
426 | int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f0b0005
427 | int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f0b0007
428 | int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f0b001e
429 | int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x7f0b0020
430 | int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f0b001d
431 | int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x7f0b001f
432 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Menu 0x7f0b0054
433 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle 0x7f0b0056
434 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle_Inverse 0x7f0b0058
435 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title 0x7f0b0055
436 | int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title_Inverse 0x7f0b0057
437 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle 0x7f0b0051
438 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle_Inverse 0x7f0b0053
439 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title 0x7f0b0050
440 | int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title_Inverse 0x7f0b0052
441 | int style TextAppearance_AppCompat_Widget_Base_DropDownItem 0x7f0b0061
442 | int style TextAppearance_AppCompat_Widget_DropDownItem 0x7f0b0021
443 | int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f0b002e
444 | int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f0b002f
445 | int style TextAppearance_Widget_AppCompat_Base_ExpandedMenu_Item 0x7f0b0062
446 | int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f0b0028
447 | int style Theme_AppCompat 0x7f0b0077
448 | int style Theme_AppCompat_Base_CompactMenu 0x7f0b0083
449 | int style Theme_AppCompat_Base_CompactMenu_Dialog 0x7f0b0084
450 | int style Theme_AppCompat_CompactMenu 0x7f0b007c
451 | int style Theme_AppCompat_CompactMenu_Dialog 0x7f0b007d
452 | int style Theme_AppCompat_DialogWhenLarge 0x7f0b007a
453 | int style Theme_AppCompat_Light 0x7f0b0078
454 | int style Theme_AppCompat_Light_DarkActionBar 0x7f0b0079
455 | int style Theme_AppCompat_Light_DialogWhenLarge 0x7f0b007b
456 | int style Theme_Base 0x7f0b007e
457 | int style Theme_Base_AppCompat 0x7f0b0080
458 | int style Theme_Base_AppCompat_Dialog_FixedSize 0x7f0b0087
459 | int style Theme_Base_AppCompat_Dialog_Light_FixedSize 0x7f0b0088
460 | int style Theme_Base_AppCompat_DialogWhenLarge 0x7f0b0085
461 | int style Theme_Base_AppCompat_DialogWhenLarge_Base 0x7f0b0089
462 | int style Theme_Base_AppCompat_Light 0x7f0b0081
463 | int style Theme_Base_AppCompat_Light_DarkActionBar 0x7f0b0082
464 | int style Theme_Base_AppCompat_Light_DialogWhenLarge 0x7f0b0086
465 | int style Theme_Base_AppCompat_Light_DialogWhenLarge_Base 0x7f0b008a
466 | int style Theme_Base_Light 0x7f0b007f
467 | int style Widget_AppCompat_ActionBar 0x7f0b0000
468 | int style Widget_AppCompat_ActionBar_Solid 0x7f0b0002
469 | int style Widget_AppCompat_ActionBar_TabBar 0x7f0b0011
470 | int style Widget_AppCompat_ActionBar_TabText 0x7f0b0017
471 | int style Widget_AppCompat_ActionBar_TabView 0x7f0b0014
472 | int style Widget_AppCompat_ActionButton 0x7f0b000b
473 | int style Widget_AppCompat_ActionButton_CloseMode 0x7f0b000d
474 | int style Widget_AppCompat_ActionButton_Overflow 0x7f0b000f
475 | int style Widget_AppCompat_ActionMode 0x7f0b001b
476 | int style Widget_AppCompat_ActivityChooserView 0x7f0b0038
477 | int style Widget_AppCompat_AutoCompleteTextView 0x7f0b0036
478 | int style Widget_AppCompat_Base_ActionBar 0x7f0b003a
479 | int style Widget_AppCompat_Base_ActionBar_Solid 0x7f0b003c
480 | int style Widget_AppCompat_Base_ActionBar_TabBar 0x7f0b0045
481 | int style Widget_AppCompat_Base_ActionBar_TabText 0x7f0b004b
482 | int style Widget_AppCompat_Base_ActionBar_TabView 0x7f0b0048
483 | int style Widget_AppCompat_Base_ActionButton 0x7f0b003f
484 | int style Widget_AppCompat_Base_ActionButton_CloseMode 0x7f0b0041
485 | int style Widget_AppCompat_Base_ActionButton_Overflow 0x7f0b0043
486 | int style Widget_AppCompat_Base_ActionMode 0x7f0b004e
487 | int style Widget_AppCompat_Base_ActivityChooserView 0x7f0b0075
488 | int style Widget_AppCompat_Base_AutoCompleteTextView 0x7f0b0073
489 | int style Widget_AppCompat_Base_DropDownItem_Spinner 0x7f0b005d
490 | int style Widget_AppCompat_Base_ListPopupWindow 0x7f0b0065
491 | int style Widget_AppCompat_Base_ListView_DropDown 0x7f0b005f
492 | int style Widget_AppCompat_Base_ListView_Menu 0x7f0b0064
493 | int style Widget_AppCompat_Base_PopupMenu 0x7f0b0067
494 | int style Widget_AppCompat_Base_ProgressBar 0x7f0b005a
495 | int style Widget_AppCompat_Base_ProgressBar_Horizontal 0x7f0b0059
496 | int style Widget_AppCompat_Base_Spinner 0x7f0b005b
497 | int style Widget_AppCompat_DropDownItem_Spinner 0x7f0b0024
498 | int style Widget_AppCompat_Light_ActionBar 0x7f0b0001
499 | int style Widget_AppCompat_Light_ActionBar_Solid 0x7f0b0003
500 | int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x7f0b0004
501 | int style Widget_AppCompat_Light_ActionBar_TabBar 0x7f0b0012
502 | int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x7f0b0013
503 | int style Widget_AppCompat_Light_ActionBar_TabText 0x7f0b0018
504 | int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f0b0019
505 | int style Widget_AppCompat_Light_ActionBar_TabView 0x7f0b0015
506 | int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x7f0b0016
507 | int style Widget_AppCompat_Light_ActionButton 0x7f0b000c
508 | int style Widget_AppCompat_Light_ActionButton_CloseMode 0x7f0b000e
509 | int style Widget_AppCompat_Light_ActionButton_Overflow 0x7f0b0010
510 | int style Widget_AppCompat_Light_ActionMode_Inverse 0x7f0b001c
511 | int style Widget_AppCompat_Light_ActivityChooserView 0x7f0b0039
512 | int style Widget_AppCompat_Light_AutoCompleteTextView 0x7f0b0037
513 | int style Widget_AppCompat_Light_Base_ActionBar 0x7f0b003b
514 | int style Widget_AppCompat_Light_Base_ActionBar_Solid 0x7f0b003d
515 | int style Widget_AppCompat_Light_Base_ActionBar_Solid_Inverse 0x7f0b003e
516 | int style Widget_AppCompat_Light_Base_ActionBar_TabBar 0x7f0b0046
517 | int style Widget_AppCompat_Light_Base_ActionBar_TabBar_Inverse 0x7f0b0047
518 | int style Widget_AppCompat_Light_Base_ActionBar_TabText 0x7f0b004c
519 | int style Widget_AppCompat_Light_Base_ActionBar_TabText_Inverse 0x7f0b004d
520 | int style Widget_AppCompat_Light_Base_ActionBar_TabView 0x7f0b0049
521 | int style Widget_AppCompat_Light_Base_ActionBar_TabView_Inverse 0x7f0b004a
522 | int style Widget_AppCompat_Light_Base_ActionButton 0x7f0b0040
523 | int style Widget_AppCompat_Light_Base_ActionButton_CloseMode 0x7f0b0042
524 | int style Widget_AppCompat_Light_Base_ActionButton_Overflow 0x7f0b0044
525 | int style Widget_AppCompat_Light_Base_ActionMode_Inverse 0x7f0b004f
526 | int style Widget_AppCompat_Light_Base_ActivityChooserView 0x7f0b0076
527 | int style Widget_AppCompat_Light_Base_AutoCompleteTextView 0x7f0b0074
528 | int style Widget_AppCompat_Light_Base_DropDownItem_Spinner 0x7f0b005e
529 | int style Widget_AppCompat_Light_Base_ListPopupWindow 0x7f0b0066
530 | int style Widget_AppCompat_Light_Base_ListView_DropDown 0x7f0b0060
531 | int style Widget_AppCompat_Light_Base_PopupMenu 0x7f0b0068
532 | int style Widget_AppCompat_Light_Base_Spinner 0x7f0b005c
533 | int style Widget_AppCompat_Light_DropDownItem_Spinner 0x7f0b0025
534 | int style Widget_AppCompat_Light_ListPopupWindow 0x7f0b002a
535 | int style Widget_AppCompat_Light_ListView_DropDown 0x7f0b0027
536 | int style Widget_AppCompat_Light_PopupMenu 0x7f0b002c
537 | int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x7f0b0023
538 | int style Widget_AppCompat_ListPopupWindow 0x7f0b0029
539 | int style Widget_AppCompat_ListView_DropDown 0x7f0b0026
540 | int style Widget_AppCompat_ListView_Menu 0x7f0b002d
541 | int style Widget_AppCompat_PopupMenu 0x7f0b002b
542 | int style Widget_AppCompat_ProgressBar 0x7f0b000a
543 | int style Widget_AppCompat_ProgressBar_Horizontal 0x7f0b0009
544 | int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x7f0b0022
545 | int[] styleable ActionBar { 0x7f010025, 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b, 0x7f01002c, 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035, 0x7f010036, 0x7f010037 }
546 | int styleable ActionBar_background 10
547 | int styleable ActionBar_backgroundSplit 12
548 | int styleable ActionBar_backgroundStacked 11
549 | int styleable ActionBar_customNavigationLayout 13
550 | int styleable ActionBar_displayOptions 3
551 | int styleable ActionBar_divider 9
552 | int styleable ActionBar_height 1
553 | int styleable ActionBar_homeLayout 14
554 | int styleable ActionBar_icon 7
555 | int styleable ActionBar_indeterminateProgressStyle 16
556 | int styleable ActionBar_itemPadding 18
557 | int styleable ActionBar_logo 8
558 | int styleable ActionBar_navigationMode 2
559 | int styleable ActionBar_progressBarPadding 17
560 | int styleable ActionBar_progressBarStyle 15
561 | int styleable ActionBar_subtitle 4
562 | int styleable ActionBar_subtitleTextStyle 6
563 | int styleable ActionBar_title 0
564 | int styleable ActionBar_titleTextStyle 5
565 | int[] styleable ActionBarLayout { 0x010100b3 }
566 | int styleable ActionBarLayout_android_layout_gravity 0
567 | int[] styleable ActionBarWindow { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006 }
568 | int styleable ActionBarWindow_windowActionBar 0
569 | int styleable ActionBarWindow_windowActionBarOverlay 1
570 | int styleable ActionBarWindow_windowFixedHeightMajor 6
571 | int styleable ActionBarWindow_windowFixedHeightMinor 4
572 | int styleable ActionBarWindow_windowFixedWidthMajor 3
573 | int styleable ActionBarWindow_windowFixedWidthMinor 5
574 | int styleable ActionBarWindow_windowSplitActionBar 2
575 | int[] styleable ActionMenuItemView { 0x0101013f }
576 | int styleable ActionMenuItemView_android_minWidth 0
577 | int[] styleable ActionMenuView { }
578 | int[] styleable ActionMode { 0x7f010026, 0x7f01002a, 0x7f01002b, 0x7f01002f, 0x7f010031 }
579 | int styleable ActionMode_background 3
580 | int styleable ActionMode_backgroundSplit 4
581 | int styleable ActionMode_height 0
582 | int styleable ActionMode_subtitleTextStyle 2
583 | int styleable ActionMode_titleTextStyle 1
584 | int[] styleable ActivityChooserView { 0x7f01006a, 0x7f01006b }
585 | int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 1
586 | int styleable ActivityChooserView_initialActivityCount 0
587 | int[] styleable CompatTextView { 0x7f01006d }
588 | int styleable CompatTextView_textAllCaps 0
589 | int[] styleable LinearLayoutICS { 0x7f01002e, 0x7f010055, 0x7f010056 }
590 | int styleable LinearLayoutICS_divider 0
591 | int styleable LinearLayoutICS_dividerPadding 2
592 | int styleable LinearLayoutICS_showDividers 1
593 | int[] styleable MenuGroup { 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, 0x010101df, 0x010101e0 }
594 | int styleable MenuGroup_android_checkableBehavior 5
595 | int styleable MenuGroup_android_enabled 0
596 | int styleable MenuGroup_android_id 1
597 | int styleable MenuGroup_android_menuCategory 3
598 | int styleable MenuGroup_android_orderInCategory 4
599 | int styleable MenuGroup_android_visible 2
600 | int[] styleable MenuItem { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f01004d, 0x7f01004e, 0x7f01004f, 0x7f010050 }
601 | int styleable MenuItem_actionLayout 14
602 | int styleable MenuItem_actionProviderClass 16
603 | int styleable MenuItem_actionViewClass 15
604 | int styleable MenuItem_android_alphabeticShortcut 9
605 | int styleable MenuItem_android_checkable 11
606 | int styleable MenuItem_android_checked 3
607 | int styleable MenuItem_android_enabled 1
608 | int styleable MenuItem_android_icon 0
609 | int styleable MenuItem_android_id 2
610 | int styleable MenuItem_android_menuCategory 5
611 | int styleable MenuItem_android_numericShortcut 10
612 | int styleable MenuItem_android_onClick 12
613 | int styleable MenuItem_android_orderInCategory 6
614 | int styleable MenuItem_android_title 7
615 | int styleable MenuItem_android_titleCondensed 8
616 | int styleable MenuItem_android_visible 4
617 | int styleable MenuItem_showAsAction 13
618 | int[] styleable MenuView { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x010103ea }
619 | int styleable MenuView_android_headerBackground 4
620 | int styleable MenuView_android_horizontalDivider 2
621 | int styleable MenuView_android_itemBackground 5
622 | int styleable MenuView_android_itemIconDisabledAlpha 6
623 | int styleable MenuView_android_itemTextAppearance 1
624 | int styleable MenuView_android_preserveIconSpacing 7
625 | int styleable MenuView_android_verticalDivider 3
626 | int styleable MenuView_android_windowAnimationStyle 0
627 | int[] styleable SearchView { 0x0101011f, 0x01010220, 0x01010264, 0x7f01005a, 0x7f01005b }
628 | int styleable SearchView_android_imeOptions 2
629 | int styleable SearchView_android_inputType 1
630 | int styleable SearchView_android_maxWidth 0
631 | int styleable SearchView_iconifiedByDefault 3
632 | int styleable SearchView_queryHint 4
633 | int[] styleable Spinner { 0x010100af, 0x01010175, 0x01010176, 0x01010262, 0x010102ac, 0x010102ad, 0x7f010051, 0x7f010052, 0x7f010053, 0x7f010054 }
634 | int styleable Spinner_android_dropDownHorizontalOffset 4
635 | int styleable Spinner_android_dropDownSelector 1
636 | int styleable Spinner_android_dropDownVerticalOffset 5
637 | int styleable Spinner_android_dropDownWidth 3
638 | int styleable Spinner_android_gravity 0
639 | int styleable Spinner_android_popupBackground 2
640 | int styleable Spinner_disableChildrenWhenDisabled 9
641 | int styleable Spinner_popupPromptView 8
642 | int styleable Spinner_prompt 6
643 | int styleable Spinner_spinnerMode 7
644 | int[] styleable Theme { 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, 0x7f01004b, 0x7f01004c }
645 | int styleable Theme_actionDropDownStyle 0
646 | int styleable Theme_dropdownListPreferredItemHeight 1
647 | int styleable Theme_listChoiceBackgroundIndicator 5
648 | int styleable Theme_panelMenuListTheme 4
649 | int styleable Theme_panelMenuListWidth 3
650 | int styleable Theme_popupMenuStyle 2
651 | int[] styleable View { 0x010100da, 0x7f010038, 0x7f010039 }
652 | int styleable View_android_focusable 0
653 | int styleable View_paddingEnd 2
654 | int styleable View_paddingStart 1
655 |
--------------------------------------------------------------------------------
/atires/bin/jarlist.cache:
--------------------------------------------------------------------------------
1 | # cache for current jar dependency. DO NOT EDIT.
2 | # format is
3 | # Encoding is UTF-8
4 |
--------------------------------------------------------------------------------
/atires/gen/android/support/v7/appcompat/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 android.support.v7.appcompat;
8 |
9 | public final class R {
10 | public static final class anim {
11 | public static final int abc_fade_in = 0x7f040000;
12 | public static final int abc_fade_out = 0x7f040001;
13 | public static final int abc_slide_in_bottom = 0x7f040002;
14 | public static final int abc_slide_in_top = 0x7f040003;
15 | public static final int abc_slide_out_bottom = 0x7f040004;
16 | public static final int abc_slide_out_top = 0x7f040005;
17 | }
18 | public static final class attr {
19 | public static final int actionBarDivider = 0x7f01000f;
20 | public static final int actionBarItemBackground = 0x7f010010;
21 | public static final int actionBarSize = 0x7f01000e;
22 | public static final int actionBarSplitStyle = 0x7f01000c;
23 | public static final int actionBarStyle = 0x7f01000b;
24 | public static final int actionBarTabBarStyle = 0x7f010008;
25 | public static final int actionBarTabStyle = 0x7f010007;
26 | public static final int actionBarTabTextStyle = 0x7f010009;
27 | public static final int actionBarWidgetTheme = 0x7f01000d;
28 | public static final int actionButtonStyle = 0x7f010016;
29 | public static final int actionDropDownStyle = 0x7f010047;
30 | public static final int actionLayout = 0x7f01004e;
31 | public static final int actionMenuTextAppearance = 0x7f010011;
32 | public static final int actionMenuTextColor = 0x7f010012;
33 | public static final int actionModeBackground = 0x7f01003c;
34 | public static final int actionModeCloseButtonStyle = 0x7f01003b;
35 | public static final int actionModeCloseDrawable = 0x7f01003e;
36 | public static final int actionModeCopyDrawable = 0x7f010040;
37 | public static final int actionModeCutDrawable = 0x7f01003f;
38 | public static final int actionModeFindDrawable = 0x7f010044;
39 | public static final int actionModePasteDrawable = 0x7f010041;
40 | public static final int actionModePopupWindowStyle = 0x7f010046;
41 | public static final int actionModeSelectAllDrawable = 0x7f010042;
42 | public static final int actionModeShareDrawable = 0x7f010043;
43 | public static final int actionModeSplitBackground = 0x7f01003d;
44 | public static final int actionModeStyle = 0x7f01003a;
45 | public static final int actionModeWebSearchDrawable = 0x7f010045;
46 | public static final int actionOverflowButtonStyle = 0x7f01000a;
47 | public static final int actionProviderClass = 0x7f010050;
48 | public static final int actionViewClass = 0x7f01004f;
49 | public static final int activityChooserViewStyle = 0x7f01006c;
50 | public static final int background = 0x7f01002f;
51 | public static final int backgroundSplit = 0x7f010031;
52 | public static final int backgroundStacked = 0x7f010030;
53 | public static final int buttonBarButtonStyle = 0x7f010018;
54 | public static final int buttonBarStyle = 0x7f010017;
55 | public static final int customNavigationLayout = 0x7f010032;
56 | public static final int disableChildrenWhenDisabled = 0x7f010054;
57 | public static final int displayOptions = 0x7f010028;
58 | public static final int divider = 0x7f01002e;
59 | public static final int dividerHorizontal = 0x7f01001b;
60 | public static final int dividerPadding = 0x7f010056;
61 | public static final int dividerVertical = 0x7f01001a;
62 | public static final int dropDownListViewStyle = 0x7f010021;
63 | public static final int dropdownListPreferredItemHeight = 0x7f010048;
64 | public static final int expandActivityOverflowButtonDrawable = 0x7f01006b;
65 | public static final int height = 0x7f010026;
66 | public static final int homeAsUpIndicator = 0x7f010013;
67 | public static final int homeLayout = 0x7f010033;
68 | public static final int icon = 0x7f01002c;
69 | public static final int iconifiedByDefault = 0x7f01005a;
70 | public static final int indeterminateProgressStyle = 0x7f010035;
71 | public static final int initialActivityCount = 0x7f01006a;
72 | public static final int isLightTheme = 0x7f010059;
73 | public static final int itemPadding = 0x7f010037;
74 | public static final int listChoiceBackgroundIndicator = 0x7f01004c;
75 | public static final int listPopupWindowStyle = 0x7f010022;
76 | public static final int listPreferredItemHeight = 0x7f01001c;
77 | public static final int listPreferredItemHeightLarge = 0x7f01001e;
78 | public static final int listPreferredItemHeightSmall = 0x7f01001d;
79 | public static final int listPreferredItemPaddingLeft = 0x7f01001f;
80 | public static final int listPreferredItemPaddingRight = 0x7f010020;
81 | public static final int logo = 0x7f01002d;
82 | public static final int navigationMode = 0x7f010027;
83 | public static final int paddingEnd = 0x7f010039;
84 | public static final int paddingStart = 0x7f010038;
85 | public static final int panelMenuListTheme = 0x7f01004b;
86 | public static final int panelMenuListWidth = 0x7f01004a;
87 | public static final int popupMenuStyle = 0x7f010049;
88 | public static final int popupPromptView = 0x7f010053;
89 | public static final int progressBarPadding = 0x7f010036;
90 | public static final int progressBarStyle = 0x7f010034;
91 | public static final int prompt = 0x7f010051;
92 | public static final int queryHint = 0x7f01005b;
93 | public static final int searchDropdownBackground = 0x7f01005c;
94 | public static final int searchResultListItemHeight = 0x7f010065;
95 | public static final int searchViewAutoCompleteTextView = 0x7f010069;
96 | public static final int searchViewCloseIcon = 0x7f01005d;
97 | public static final int searchViewEditQuery = 0x7f010061;
98 | public static final int searchViewEditQueryBackground = 0x7f010062;
99 | public static final int searchViewGoIcon = 0x7f01005e;
100 | public static final int searchViewSearchIcon = 0x7f01005f;
101 | public static final int searchViewTextField = 0x7f010063;
102 | public static final int searchViewTextFieldRight = 0x7f010064;
103 | public static final int searchViewVoiceIcon = 0x7f010060;
104 | public static final int selectableItemBackground = 0x7f010019;
105 | public static final int showAsAction = 0x7f01004d;
106 | public static final int showDividers = 0x7f010055;
107 | public static final int spinnerDropDownItemStyle = 0x7f010058;
108 | public static final int spinnerMode = 0x7f010052;
109 | public static final int spinnerStyle = 0x7f010057;
110 | public static final int subtitle = 0x7f010029;
111 | public static final int subtitleTextStyle = 0x7f01002b;
112 | public static final int textAllCaps = 0x7f01006d;
113 | public static final int textAppearanceLargePopupMenu = 0x7f010014;
114 | public static final int textAppearanceListItem = 0x7f010023;
115 | public static final int textAppearanceListItemSmall = 0x7f010024;
116 | public static final int textAppearanceSearchResultSubtitle = 0x7f010067;
117 | public static final int textAppearanceSearchResultTitle = 0x7f010066;
118 | public static final int textAppearanceSmallPopupMenu = 0x7f010015;
119 | public static final int textColorSearchUrl = 0x7f010068;
120 | public static final int title = 0x7f010025;
121 | public static final int titleTextStyle = 0x7f01002a;
122 | public static final int windowActionBar = 0x7f010000;
123 | public static final int windowActionBarOverlay = 0x7f010001;
124 | public static final int windowFixedHeightMajor = 0x7f010006;
125 | public static final int windowFixedHeightMinor = 0x7f010004;
126 | public static final int windowFixedWidthMajor = 0x7f010003;
127 | public static final int windowFixedWidthMinor = 0x7f010005;
128 | public static final int windowSplitActionBar = 0x7f010002;
129 | }
130 | public static final class bool {
131 | public static final int abc_action_bar_embed_tabs_pre_jb = 0x7f050000;
132 | public static final int abc_action_bar_expanded_action_views_exclusive = 0x7f050001;
133 | public static final int abc_config_actionMenuItemAllCaps = 0x7f050005;
134 | public static final int abc_config_allowActionMenuItemTextWithIcon = 0x7f050004;
135 | public static final int abc_config_showMenuShortcutsWhenKeyboardPresent = 0x7f050003;
136 | public static final int abc_split_action_bar_is_narrow = 0x7f050002;
137 | }
138 | public static final class color {
139 | public static final int abc_search_url_text_holo = 0x7f060003;
140 | public static final int abc_search_url_text_normal = 0x7f060000;
141 | public static final int abc_search_url_text_pressed = 0x7f060002;
142 | public static final int abc_search_url_text_selected = 0x7f060001;
143 | }
144 | public static final class dimen {
145 | public static final int abc_action_bar_default_height = 0x7f070002;
146 | public static final int abc_action_bar_icon_vertical_padding = 0x7f070003;
147 | public static final int abc_action_bar_progress_bar_size = 0x7f07000a;
148 | public static final int abc_action_bar_stacked_max_height = 0x7f070009;
149 | public static final int abc_action_bar_stacked_tab_max_width = 0x7f070001;
150 | public static final int abc_action_bar_subtitle_bottom_margin = 0x7f070007;
151 | public static final int abc_action_bar_subtitle_text_size = 0x7f070005;
152 | public static final int abc_action_bar_subtitle_top_margin = 0x7f070006;
153 | public static final int abc_action_bar_title_text_size = 0x7f070004;
154 | public static final int abc_action_button_min_width = 0x7f070008;
155 | public static final int abc_config_prefDialogWidth = 0x7f070000;
156 | public static final int abc_dropdownitem_icon_width = 0x7f070010;
157 | public static final int abc_dropdownitem_text_padding_left = 0x7f07000e;
158 | public static final int abc_dropdownitem_text_padding_right = 0x7f07000f;
159 | public static final int abc_panel_menu_list_width = 0x7f07000b;
160 | public static final int abc_search_view_preferred_width = 0x7f07000d;
161 | public static final int abc_search_view_text_min_width = 0x7f07000c;
162 | public static final int dialog_fixed_height_major = 0x7f070013;
163 | public static final int dialog_fixed_height_minor = 0x7f070014;
164 | public static final int dialog_fixed_width_major = 0x7f070011;
165 | public static final int dialog_fixed_width_minor = 0x7f070012;
166 | }
167 | public static final class drawable {
168 | public static final int abc_ab_bottom_solid_dark_holo = 0x7f020000;
169 | public static final int abc_ab_bottom_solid_light_holo = 0x7f020001;
170 | public static final int abc_ab_bottom_transparent_dark_holo = 0x7f020002;
171 | public static final int abc_ab_bottom_transparent_light_holo = 0x7f020003;
172 | public static final int abc_ab_share_pack_holo_dark = 0x7f020004;
173 | public static final int abc_ab_share_pack_holo_light = 0x7f020005;
174 | public static final int abc_ab_solid_dark_holo = 0x7f020006;
175 | public static final int abc_ab_solid_light_holo = 0x7f020007;
176 | public static final int abc_ab_stacked_solid_dark_holo = 0x7f020008;
177 | public static final int abc_ab_stacked_solid_light_holo = 0x7f020009;
178 | public static final int abc_ab_stacked_transparent_dark_holo = 0x7f02000a;
179 | public static final int abc_ab_stacked_transparent_light_holo = 0x7f02000b;
180 | public static final int abc_ab_transparent_dark_holo = 0x7f02000c;
181 | public static final int abc_ab_transparent_light_holo = 0x7f02000d;
182 | public static final int abc_cab_background_bottom_holo_dark = 0x7f02000e;
183 | public static final int abc_cab_background_bottom_holo_light = 0x7f02000f;
184 | public static final int abc_cab_background_top_holo_dark = 0x7f020010;
185 | public static final int abc_cab_background_top_holo_light = 0x7f020011;
186 | public static final int abc_ic_ab_back_holo_dark = 0x7f020012;
187 | public static final int abc_ic_ab_back_holo_light = 0x7f020013;
188 | public static final int abc_ic_cab_done_holo_dark = 0x7f020014;
189 | public static final int abc_ic_cab_done_holo_light = 0x7f020015;
190 | public static final int abc_ic_clear = 0x7f020016;
191 | public static final int abc_ic_clear_disabled = 0x7f020017;
192 | public static final int abc_ic_clear_holo_light = 0x7f020018;
193 | public static final int abc_ic_clear_normal = 0x7f020019;
194 | public static final int abc_ic_clear_search_api_disabled_holo_light = 0x7f02001a;
195 | public static final int abc_ic_clear_search_api_holo_light = 0x7f02001b;
196 | public static final int abc_ic_commit_search_api_holo_dark = 0x7f02001c;
197 | public static final int abc_ic_commit_search_api_holo_light = 0x7f02001d;
198 | public static final int abc_ic_go = 0x7f02001e;
199 | public static final int abc_ic_go_search_api_holo_light = 0x7f02001f;
200 | public static final int abc_ic_menu_moreoverflow_normal_holo_dark = 0x7f020020;
201 | public static final int abc_ic_menu_moreoverflow_normal_holo_light = 0x7f020021;
202 | public static final int abc_ic_menu_share_holo_dark = 0x7f020022;
203 | public static final int abc_ic_menu_share_holo_light = 0x7f020023;
204 | public static final int abc_ic_search = 0x7f020024;
205 | public static final int abc_ic_search_api_holo_light = 0x7f020025;
206 | public static final int abc_ic_voice_search = 0x7f020026;
207 | public static final int abc_ic_voice_search_api_holo_light = 0x7f020027;
208 | public static final int abc_item_background_holo_dark = 0x7f020028;
209 | public static final int abc_item_background_holo_light = 0x7f020029;
210 | public static final int abc_list_divider_holo_dark = 0x7f02002a;
211 | public static final int abc_list_divider_holo_light = 0x7f02002b;
212 | public static final int abc_list_focused_holo = 0x7f02002c;
213 | public static final int abc_list_longpressed_holo = 0x7f02002d;
214 | public static final int abc_list_pressed_holo_dark = 0x7f02002e;
215 | public static final int abc_list_pressed_holo_light = 0x7f02002f;
216 | public static final int abc_list_selector_background_transition_holo_dark = 0x7f020030;
217 | public static final int abc_list_selector_background_transition_holo_light = 0x7f020031;
218 | public static final int abc_list_selector_disabled_holo_dark = 0x7f020032;
219 | public static final int abc_list_selector_disabled_holo_light = 0x7f020033;
220 | public static final int abc_list_selector_holo_dark = 0x7f020034;
221 | public static final int abc_list_selector_holo_light = 0x7f020035;
222 | public static final int abc_menu_dropdown_panel_holo_dark = 0x7f020036;
223 | public static final int abc_menu_dropdown_panel_holo_light = 0x7f020037;
224 | public static final int abc_menu_hardkey_panel_holo_dark = 0x7f020038;
225 | public static final int abc_menu_hardkey_panel_holo_light = 0x7f020039;
226 | public static final int abc_search_dropdown_dark = 0x7f02003a;
227 | public static final int abc_search_dropdown_light = 0x7f02003b;
228 | public static final int abc_spinner_ab_default_holo_dark = 0x7f02003c;
229 | public static final int abc_spinner_ab_default_holo_light = 0x7f02003d;
230 | public static final int abc_spinner_ab_disabled_holo_dark = 0x7f02003e;
231 | public static final int abc_spinner_ab_disabled_holo_light = 0x7f02003f;
232 | public static final int abc_spinner_ab_focused_holo_dark = 0x7f020040;
233 | public static final int abc_spinner_ab_focused_holo_light = 0x7f020041;
234 | public static final int abc_spinner_ab_holo_dark = 0x7f020042;
235 | public static final int abc_spinner_ab_holo_light = 0x7f020043;
236 | public static final int abc_spinner_ab_pressed_holo_dark = 0x7f020044;
237 | public static final int abc_spinner_ab_pressed_holo_light = 0x7f020045;
238 | public static final int abc_tab_indicator_ab_holo = 0x7f020046;
239 | public static final int abc_tab_selected_focused_holo = 0x7f020047;
240 | public static final int abc_tab_selected_holo = 0x7f020048;
241 | public static final int abc_tab_selected_pressed_holo = 0x7f020049;
242 | public static final int abc_tab_unselected_pressed_holo = 0x7f02004a;
243 | public static final int abc_textfield_search_default_holo_dark = 0x7f02004b;
244 | public static final int abc_textfield_search_default_holo_light = 0x7f02004c;
245 | public static final int abc_textfield_search_right_default_holo_dark = 0x7f02004d;
246 | public static final int abc_textfield_search_right_default_holo_light = 0x7f02004e;
247 | public static final int abc_textfield_search_right_selected_holo_dark = 0x7f02004f;
248 | public static final int abc_textfield_search_right_selected_holo_light = 0x7f020050;
249 | public static final int abc_textfield_search_selected_holo_dark = 0x7f020051;
250 | public static final int abc_textfield_search_selected_holo_light = 0x7f020052;
251 | public static final int abc_textfield_searchview_holo_dark = 0x7f020053;
252 | public static final int abc_textfield_searchview_holo_light = 0x7f020054;
253 | public static final int abc_textfield_searchview_right_holo_dark = 0x7f020055;
254 | public static final int abc_textfield_searchview_right_holo_light = 0x7f020056;
255 | }
256 | public static final class id {
257 | public static final int action_bar = 0x7f09001c;
258 | public static final int action_bar_activity_content = 0x7f090001;
259 | public static final int action_bar_container = 0x7f09001b;
260 | public static final int action_bar_overlay_layout = 0x7f09001f;
261 | public static final int action_bar_root = 0x7f09001a;
262 | public static final int action_bar_subtitle = 0x7f090023;
263 | public static final int action_bar_title = 0x7f090022;
264 | public static final int action_context_bar = 0x7f09001d;
265 | public static final int action_menu_divider = 0x7f090002;
266 | public static final int action_menu_presenter = 0x7f090003;
267 | public static final int action_mode_close_button = 0x7f090024;
268 | public static final int activity_chooser_view_content = 0x7f090025;
269 | public static final int always = 0x7f09000f;
270 | public static final int beginning = 0x7f090016;
271 | public static final int checkbox = 0x7f09002d;
272 | public static final int collapseActionView = 0x7f090010;
273 | public static final int default_activity_button = 0x7f090028;
274 | public static final int dialog = 0x7f090014;
275 | public static final int disableHome = 0x7f090009;
276 | public static final int dropdown = 0x7f090015;
277 | public static final int edit_query = 0x7f090030;
278 | public static final int end = 0x7f090017;
279 | public static final int expand_activities_button = 0x7f090026;
280 | public static final int expanded_menu = 0x7f09002c;
281 | public static final int home = 0x7f090000;
282 | public static final int homeAsUp = 0x7f09000a;
283 | public static final int icon = 0x7f09002a;
284 | public static final int ifRoom = 0x7f090011;
285 | public static final int image = 0x7f090027;
286 | public static final int listMode = 0x7f090006;
287 | public static final int list_item = 0x7f090029;
288 | public static final int middle = 0x7f090018;
289 | public static final int never = 0x7f090012;
290 | public static final int none = 0x7f090019;
291 | public static final int normal = 0x7f090007;
292 | public static final int progress_circular = 0x7f090004;
293 | public static final int progress_horizontal = 0x7f090005;
294 | public static final int radio = 0x7f09002f;
295 | public static final int search_badge = 0x7f090032;
296 | public static final int search_bar = 0x7f090031;
297 | public static final int search_button = 0x7f090033;
298 | public static final int search_close_btn = 0x7f090038;
299 | public static final int search_edit_frame = 0x7f090034;
300 | public static final int search_go_btn = 0x7f09003a;
301 | public static final int search_mag_icon = 0x7f090035;
302 | public static final int search_plate = 0x7f090036;
303 | public static final int search_src_text = 0x7f090037;
304 | public static final int search_voice_btn = 0x7f09003b;
305 | public static final int shortcut = 0x7f09002e;
306 | public static final int showCustom = 0x7f09000b;
307 | public static final int showHome = 0x7f09000c;
308 | public static final int showTitle = 0x7f09000d;
309 | public static final int split_action_bar = 0x7f09001e;
310 | public static final int submit_area = 0x7f090039;
311 | public static final int tabMode = 0x7f090008;
312 | public static final int title = 0x7f09002b;
313 | public static final int top_action_bar = 0x7f090020;
314 | public static final int up = 0x7f090021;
315 | public static final int useLogo = 0x7f09000e;
316 | public static final int withText = 0x7f090013;
317 | }
318 | public static final class integer {
319 | public static final int abc_max_action_buttons = 0x7f080000;
320 | }
321 | public static final class layout {
322 | public static final int abc_action_bar_decor = 0x7f030000;
323 | public static final int abc_action_bar_decor_include = 0x7f030001;
324 | public static final int abc_action_bar_decor_overlay = 0x7f030002;
325 | public static final int abc_action_bar_home = 0x7f030003;
326 | public static final int abc_action_bar_tab = 0x7f030004;
327 | public static final int abc_action_bar_tabbar = 0x7f030005;
328 | public static final int abc_action_bar_title_item = 0x7f030006;
329 | public static final int abc_action_bar_view_list_nav_layout = 0x7f030007;
330 | public static final int abc_action_menu_item_layout = 0x7f030008;
331 | public static final int abc_action_menu_layout = 0x7f030009;
332 | public static final int abc_action_mode_bar = 0x7f03000a;
333 | public static final int abc_action_mode_close_item = 0x7f03000b;
334 | public static final int abc_activity_chooser_view = 0x7f03000c;
335 | public static final int abc_activity_chooser_view_include = 0x7f03000d;
336 | public static final int abc_activity_chooser_view_list_item = 0x7f03000e;
337 | public static final int abc_expanded_menu_layout = 0x7f03000f;
338 | public static final int abc_list_menu_item_checkbox = 0x7f030010;
339 | public static final int abc_list_menu_item_icon = 0x7f030011;
340 | public static final int abc_list_menu_item_layout = 0x7f030012;
341 | public static final int abc_list_menu_item_radio = 0x7f030013;
342 | public static final int abc_popup_menu_item_layout = 0x7f030014;
343 | public static final int abc_search_dropdown_item_icons_2line = 0x7f030015;
344 | public static final int abc_search_view = 0x7f030016;
345 | public static final int abc_simple_decor = 0x7f030017;
346 | public static final int support_simple_spinner_dropdown_item = 0x7f03001c;
347 | }
348 | public static final class string {
349 | public static final int abc_action_bar_home_description = 0x7f0a0001;
350 | public static final int abc_action_bar_up_description = 0x7f0a0002;
351 | public static final int abc_action_menu_overflow_description = 0x7f0a0003;
352 | public static final int abc_action_mode_done = 0x7f0a0000;
353 | public static final int abc_activity_chooser_view_see_all = 0x7f0a000a;
354 | public static final int abc_activitychooserview_choose_application = 0x7f0a0009;
355 | public static final int abc_searchview_description_clear = 0x7f0a0006;
356 | public static final int abc_searchview_description_query = 0x7f0a0005;
357 | public static final int abc_searchview_description_search = 0x7f0a0004;
358 | public static final int abc_searchview_description_submit = 0x7f0a0007;
359 | public static final int abc_searchview_description_voice = 0x7f0a0008;
360 | public static final int abc_shareactionprovider_share_with = 0x7f0a000c;
361 | public static final int abc_shareactionprovider_share_with_application = 0x7f0a000b;
362 | }
363 | public static final class style {
364 | public static final int TextAppearance_AppCompat_Base_CompactMenu_Dialog = 0x7f0b0063;
365 | public static final int TextAppearance_AppCompat_Base_SearchResult = 0x7f0b006d;
366 | public static final int TextAppearance_AppCompat_Base_SearchResult_Subtitle = 0x7f0b006f;
367 | public static final int TextAppearance_AppCompat_Base_SearchResult_Title = 0x7f0b006e;
368 | public static final int TextAppearance_AppCompat_Base_Widget_PopupMenu_Large = 0x7f0b0069;
369 | public static final int TextAppearance_AppCompat_Base_Widget_PopupMenu_Small = 0x7f0b006a;
370 | public static final int TextAppearance_AppCompat_Light_Base_SearchResult = 0x7f0b0070;
371 | public static final int TextAppearance_AppCompat_Light_Base_SearchResult_Subtitle = 0x7f0b0072;
372 | public static final int TextAppearance_AppCompat_Light_Base_SearchResult_Title = 0x7f0b0071;
373 | public static final int TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Large = 0x7f0b006b;
374 | public static final int TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Small = 0x7f0b006c;
375 | public static final int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 0x7f0b0035;
376 | public static final int TextAppearance_AppCompat_Light_SearchResult_Title = 0x7f0b0034;
377 | public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 0x7f0b0030;
378 | public static final int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 0x7f0b0031;
379 | public static final int TextAppearance_AppCompat_SearchResult_Subtitle = 0x7f0b0033;
380 | public static final int TextAppearance_AppCompat_SearchResult_Title = 0x7f0b0032;
381 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Menu = 0x7f0b001a;
382 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 0x7f0b0006;
383 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 0x7f0b0008;
384 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Title = 0x7f0b0005;
385 | public static final int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 0x7f0b0007;
386 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 0x7f0b001e;
387 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 0x7f0b0020;
388 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Title = 0x7f0b001d;
389 | public static final int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 0x7f0b001f;
390 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Menu = 0x7f0b0054;
391 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle = 0x7f0b0056;
392 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle_Inverse = 0x7f0b0058;
393 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Title = 0x7f0b0055;
394 | public static final int TextAppearance_AppCompat_Widget_Base_ActionBar_Title_Inverse = 0x7f0b0057;
395 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle = 0x7f0b0051;
396 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle_Inverse = 0x7f0b0053;
397 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Title = 0x7f0b0050;
398 | public static final int TextAppearance_AppCompat_Widget_Base_ActionMode_Title_Inverse = 0x7f0b0052;
399 | public static final int TextAppearance_AppCompat_Widget_Base_DropDownItem = 0x7f0b0061;
400 | public static final int TextAppearance_AppCompat_Widget_DropDownItem = 0x7f0b0021;
401 | public static final int TextAppearance_AppCompat_Widget_PopupMenu_Large = 0x7f0b002e;
402 | public static final int TextAppearance_AppCompat_Widget_PopupMenu_Small = 0x7f0b002f;
403 | public static final int TextAppearance_Widget_AppCompat_Base_ExpandedMenu_Item = 0x7f0b0062;
404 | public static final int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 0x7f0b0028;
405 | public static final int Theme_AppCompat = 0x7f0b0077;
406 | public static final int Theme_AppCompat_Base_CompactMenu = 0x7f0b0083;
407 | public static final int Theme_AppCompat_Base_CompactMenu_Dialog = 0x7f0b0084;
408 | public static final int Theme_AppCompat_CompactMenu = 0x7f0b007c;
409 | public static final int Theme_AppCompat_CompactMenu_Dialog = 0x7f0b007d;
410 | public static final int Theme_AppCompat_DialogWhenLarge = 0x7f0b007a;
411 | public static final int Theme_AppCompat_Light = 0x7f0b0078;
412 | public static final int Theme_AppCompat_Light_DarkActionBar = 0x7f0b0079;
413 | public static final int Theme_AppCompat_Light_DialogWhenLarge = 0x7f0b007b;
414 | public static final int Theme_Base = 0x7f0b007e;
415 | public static final int Theme_Base_AppCompat = 0x7f0b0080;
416 | public static final int Theme_Base_AppCompat_DialogWhenLarge = 0x7f0b0085;
417 | public static final int Theme_Base_AppCompat_DialogWhenLarge_Base = 0x7f0b0089;
418 | public static final int Theme_Base_AppCompat_Dialog_FixedSize = 0x7f0b0087;
419 | public static final int Theme_Base_AppCompat_Dialog_Light_FixedSize = 0x7f0b0088;
420 | public static final int Theme_Base_AppCompat_Light = 0x7f0b0081;
421 | public static final int Theme_Base_AppCompat_Light_DarkActionBar = 0x7f0b0082;
422 | public static final int Theme_Base_AppCompat_Light_DialogWhenLarge = 0x7f0b0086;
423 | public static final int Theme_Base_AppCompat_Light_DialogWhenLarge_Base = 0x7f0b008a;
424 | public static final int Theme_Base_Light = 0x7f0b007f;
425 | public static final int Widget_AppCompat_ActionBar = 0x7f0b0000;
426 | public static final int Widget_AppCompat_ActionBar_Solid = 0x7f0b0002;
427 | public static final int Widget_AppCompat_ActionBar_TabBar = 0x7f0b0011;
428 | public static final int Widget_AppCompat_ActionBar_TabText = 0x7f0b0017;
429 | public static final int Widget_AppCompat_ActionBar_TabView = 0x7f0b0014;
430 | public static final int Widget_AppCompat_ActionButton = 0x7f0b000b;
431 | public static final int Widget_AppCompat_ActionButton_CloseMode = 0x7f0b000d;
432 | public static final int Widget_AppCompat_ActionButton_Overflow = 0x7f0b000f;
433 | public static final int Widget_AppCompat_ActionMode = 0x7f0b001b;
434 | public static final int Widget_AppCompat_ActivityChooserView = 0x7f0b0038;
435 | public static final int Widget_AppCompat_AutoCompleteTextView = 0x7f0b0036;
436 | public static final int Widget_AppCompat_Base_ActionBar = 0x7f0b003a;
437 | public static final int Widget_AppCompat_Base_ActionBar_Solid = 0x7f0b003c;
438 | public static final int Widget_AppCompat_Base_ActionBar_TabBar = 0x7f0b0045;
439 | public static final int Widget_AppCompat_Base_ActionBar_TabText = 0x7f0b004b;
440 | public static final int Widget_AppCompat_Base_ActionBar_TabView = 0x7f0b0048;
441 | public static final int Widget_AppCompat_Base_ActionButton = 0x7f0b003f;
442 | public static final int Widget_AppCompat_Base_ActionButton_CloseMode = 0x7f0b0041;
443 | public static final int Widget_AppCompat_Base_ActionButton_Overflow = 0x7f0b0043;
444 | public static final int Widget_AppCompat_Base_ActionMode = 0x7f0b004e;
445 | public static final int Widget_AppCompat_Base_ActivityChooserView = 0x7f0b0075;
446 | public static final int Widget_AppCompat_Base_AutoCompleteTextView = 0x7f0b0073;
447 | public static final int Widget_AppCompat_Base_DropDownItem_Spinner = 0x7f0b005d;
448 | public static final int Widget_AppCompat_Base_ListPopupWindow = 0x7f0b0065;
449 | public static final int Widget_AppCompat_Base_ListView_DropDown = 0x7f0b005f;
450 | public static final int Widget_AppCompat_Base_ListView_Menu = 0x7f0b0064;
451 | public static final int Widget_AppCompat_Base_PopupMenu = 0x7f0b0067;
452 | public static final int Widget_AppCompat_Base_ProgressBar = 0x7f0b005a;
453 | public static final int Widget_AppCompat_Base_ProgressBar_Horizontal = 0x7f0b0059;
454 | public static final int Widget_AppCompat_Base_Spinner = 0x7f0b005b;
455 | public static final int Widget_AppCompat_DropDownItem_Spinner = 0x7f0b0024;
456 | public static final int Widget_AppCompat_Light_ActionBar = 0x7f0b0001;
457 | public static final int Widget_AppCompat_Light_ActionBar_Solid = 0x7f0b0003;
458 | public static final int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 0x7f0b0004;
459 | public static final int Widget_AppCompat_Light_ActionBar_TabBar = 0x7f0b0012;
460 | public static final int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 0x7f0b0013;
461 | public static final int Widget_AppCompat_Light_ActionBar_TabText = 0x7f0b0018;
462 | public static final int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 0x7f0b0019;
463 | public static final int Widget_AppCompat_Light_ActionBar_TabView = 0x7f0b0015;
464 | public static final int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 0x7f0b0016;
465 | public static final int Widget_AppCompat_Light_ActionButton = 0x7f0b000c;
466 | public static final int Widget_AppCompat_Light_ActionButton_CloseMode = 0x7f0b000e;
467 | public static final int Widget_AppCompat_Light_ActionButton_Overflow = 0x7f0b0010;
468 | public static final int Widget_AppCompat_Light_ActionMode_Inverse = 0x7f0b001c;
469 | public static final int Widget_AppCompat_Light_ActivityChooserView = 0x7f0b0039;
470 | public static final int Widget_AppCompat_Light_AutoCompleteTextView = 0x7f0b0037;
471 | public static final int Widget_AppCompat_Light_Base_ActionBar = 0x7f0b003b;
472 | public static final int Widget_AppCompat_Light_Base_ActionBar_Solid = 0x7f0b003d;
473 | public static final int Widget_AppCompat_Light_Base_ActionBar_Solid_Inverse = 0x7f0b003e;
474 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabBar = 0x7f0b0046;
475 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabBar_Inverse = 0x7f0b0047;
476 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabText = 0x7f0b004c;
477 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabText_Inverse = 0x7f0b004d;
478 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabView = 0x7f0b0049;
479 | public static final int Widget_AppCompat_Light_Base_ActionBar_TabView_Inverse = 0x7f0b004a;
480 | public static final int Widget_AppCompat_Light_Base_ActionButton = 0x7f0b0040;
481 | public static final int Widget_AppCompat_Light_Base_ActionButton_CloseMode = 0x7f0b0042;
482 | public static final int Widget_AppCompat_Light_Base_ActionButton_Overflow = 0x7f0b0044;
483 | public static final int Widget_AppCompat_Light_Base_ActionMode_Inverse = 0x7f0b004f;
484 | public static final int Widget_AppCompat_Light_Base_ActivityChooserView = 0x7f0b0076;
485 | public static final int Widget_AppCompat_Light_Base_AutoCompleteTextView = 0x7f0b0074;
486 | public static final int Widget_AppCompat_Light_Base_DropDownItem_Spinner = 0x7f0b005e;
487 | public static final int Widget_AppCompat_Light_Base_ListPopupWindow = 0x7f0b0066;
488 | public static final int Widget_AppCompat_Light_Base_ListView_DropDown = 0x7f0b0060;
489 | public static final int Widget_AppCompat_Light_Base_PopupMenu = 0x7f0b0068;
490 | public static final int Widget_AppCompat_Light_Base_Spinner = 0x7f0b005c;
491 | public static final int Widget_AppCompat_Light_DropDownItem_Spinner = 0x7f0b0025;
492 | public static final int Widget_AppCompat_Light_ListPopupWindow = 0x7f0b002a;
493 | public static final int Widget_AppCompat_Light_ListView_DropDown = 0x7f0b0027;
494 | public static final int Widget_AppCompat_Light_PopupMenu = 0x7f0b002c;
495 | public static final int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 0x7f0b0023;
496 | public static final int Widget_AppCompat_ListPopupWindow = 0x7f0b0029;
497 | public static final int Widget_AppCompat_ListView_DropDown = 0x7f0b0026;
498 | public static final int Widget_AppCompat_ListView_Menu = 0x7f0b002d;
499 | public static final int Widget_AppCompat_PopupMenu = 0x7f0b002b;
500 | public static final int Widget_AppCompat_ProgressBar = 0x7f0b000a;
501 | public static final int Widget_AppCompat_ProgressBar_Horizontal = 0x7f0b0009;
502 | public static final int Widget_AppCompat_Spinner_DropDown_ActionBar = 0x7f0b0022;
503 | }
504 | public static final class styleable {
505 | public static final int[] ActionBar = { 0x7f010025, 0x7f010026, 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b, 0x7f01002c, 0x7f01002d, 0x7f01002e, 0x7f01002f, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035, 0x7f010036, 0x7f010037 };
506 | public static final int[] ActionBarLayout = { 0x010100b3 };
507 | public static final int ActionBarLayout_android_layout_gravity = 0;
508 | public static final int[] ActionBarWindow = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006 };
509 | public static final int ActionBarWindow_windowActionBar = 0;
510 | public static final int ActionBarWindow_windowActionBarOverlay = 1;
511 | public static final int ActionBarWindow_windowFixedHeightMajor = 6;
512 | public static final int ActionBarWindow_windowFixedHeightMinor = 4;
513 | public static final int ActionBarWindow_windowFixedWidthMajor = 3;
514 | public static final int ActionBarWindow_windowFixedWidthMinor = 5;
515 | public static final int ActionBarWindow_windowSplitActionBar = 2;
516 | public static final int ActionBar_background = 10;
517 | public static final int ActionBar_backgroundSplit = 12;
518 | public static final int ActionBar_backgroundStacked = 11;
519 | public static final int ActionBar_customNavigationLayout = 13;
520 | public static final int ActionBar_displayOptions = 3;
521 | public static final int ActionBar_divider = 9;
522 | public static final int ActionBar_height = 1;
523 | public static final int ActionBar_homeLayout = 14;
524 | public static final int ActionBar_icon = 7;
525 | public static final int ActionBar_indeterminateProgressStyle = 16;
526 | public static final int ActionBar_itemPadding = 18;
527 | public static final int ActionBar_logo = 8;
528 | public static final int ActionBar_navigationMode = 2;
529 | public static final int ActionBar_progressBarPadding = 17;
530 | public static final int ActionBar_progressBarStyle = 15;
531 | public static final int ActionBar_subtitle = 4;
532 | public static final int ActionBar_subtitleTextStyle = 6;
533 | public static final int ActionBar_title = 0;
534 | public static final int ActionBar_titleTextStyle = 5;
535 | public static final int[] ActionMenuItemView = { 0x0101013f };
536 | public static final int ActionMenuItemView_android_minWidth = 0;
537 | public static final int[] ActionMenuView = { };
538 | public static final int[] ActionMode = { 0x7f010026, 0x7f01002a, 0x7f01002b, 0x7f01002f, 0x7f010031 };
539 | public static final int ActionMode_background = 3;
540 | public static final int ActionMode_backgroundSplit = 4;
541 | public static final int ActionMode_height = 0;
542 | public static final int ActionMode_subtitleTextStyle = 2;
543 | public static final int ActionMode_titleTextStyle = 1;
544 | public static final int[] ActivityChooserView = { 0x7f01006a, 0x7f01006b };
545 | public static final int ActivityChooserView_expandActivityOverflowButtonDrawable = 1;
546 | public static final int ActivityChooserView_initialActivityCount = 0;
547 | public static final int[] CompatTextView = { 0x7f01006d };
548 | public static final int CompatTextView_textAllCaps = 0;
549 | public static final int[] LinearLayoutICS = { 0x7f01002e, 0x7f010055, 0x7f010056 };
550 | public static final int LinearLayoutICS_divider = 0;
551 | public static final int LinearLayoutICS_dividerPadding = 2;
552 | public static final int LinearLayoutICS_showDividers = 1;
553 | public static final int[] MenuGroup = { 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, 0x010101df, 0x010101e0 };
554 | public static final int MenuGroup_android_checkableBehavior = 5;
555 | public static final int MenuGroup_android_enabled = 0;
556 | public static final int MenuGroup_android_id = 1;
557 | public static final int MenuGroup_android_menuCategory = 3;
558 | public static final int MenuGroup_android_orderInCategory = 4;
559 | public static final int MenuGroup_android_visible = 2;
560 | public static final int[] MenuItem = { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f01004d, 0x7f01004e, 0x7f01004f, 0x7f010050 };
561 | public static final int MenuItem_actionLayout = 14;
562 | public static final int MenuItem_actionProviderClass = 16;
563 | public static final int MenuItem_actionViewClass = 15;
564 | public static final int MenuItem_android_alphabeticShortcut = 9;
565 | public static final int MenuItem_android_checkable = 11;
566 | public static final int MenuItem_android_checked = 3;
567 | public static final int MenuItem_android_enabled = 1;
568 | public static final int MenuItem_android_icon = 0;
569 | public static final int MenuItem_android_id = 2;
570 | public static final int MenuItem_android_menuCategory = 5;
571 | public static final int MenuItem_android_numericShortcut = 10;
572 | public static final int MenuItem_android_onClick = 12;
573 | public static final int MenuItem_android_orderInCategory = 6;
574 | public static final int MenuItem_android_title = 7;
575 | public static final int MenuItem_android_titleCondensed = 8;
576 | public static final int MenuItem_android_visible = 4;
577 | public static final int MenuItem_showAsAction = 13;
578 | public static final int[] MenuView = { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x010103ea };
579 | public static final int MenuView_android_headerBackground = 4;
580 | public static final int MenuView_android_horizontalDivider = 2;
581 | public static final int MenuView_android_itemBackground = 5;
582 | public static final int MenuView_android_itemIconDisabledAlpha = 6;
583 | public static final int MenuView_android_itemTextAppearance = 1;
584 | public static final int MenuView_android_preserveIconSpacing = 7;
585 | public static final int MenuView_android_verticalDivider = 3;
586 | public static final int MenuView_android_windowAnimationStyle = 0;
587 | public static final int[] SearchView = { 0x0101011f, 0x01010220, 0x01010264, 0x7f01005a, 0x7f01005b };
588 | public static final int SearchView_android_imeOptions = 2;
589 | public static final int SearchView_android_inputType = 1;
590 | public static final int SearchView_android_maxWidth = 0;
591 | public static final int SearchView_iconifiedByDefault = 3;
592 | public static final int SearchView_queryHint = 4;
593 | public static final int[] Spinner = { 0x010100af, 0x01010175, 0x01010176, 0x01010262, 0x010102ac, 0x010102ad, 0x7f010051, 0x7f010052, 0x7f010053, 0x7f010054 };
594 | public static final int Spinner_android_dropDownHorizontalOffset = 4;
595 | public static final int Spinner_android_dropDownSelector = 1;
596 | public static final int Spinner_android_dropDownVerticalOffset = 5;
597 | public static final int Spinner_android_dropDownWidth = 3;
598 | public static final int Spinner_android_gravity = 0;
599 | public static final int Spinner_android_popupBackground = 2;
600 | public static final int Spinner_disableChildrenWhenDisabled = 9;
601 | public static final int Spinner_popupPromptView = 8;
602 | public static final int Spinner_prompt = 6;
603 | public static final int Spinner_spinnerMode = 7;
604 | public static final int[] Theme = { 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, 0x7f01004b, 0x7f01004c };
605 | public static final int Theme_actionDropDownStyle = 0;
606 | public static final int Theme_dropdownListPreferredItemHeight = 1;
607 | public static final int Theme_listChoiceBackgroundIndicator = 5;
608 | public static final int Theme_panelMenuListTheme = 4;
609 | public static final int Theme_panelMenuListWidth = 3;
610 | public static final int Theme_popupMenuStyle = 2;
611 | public static final int[] View = { 0x010100da, 0x7f010038, 0x7f010039 };
612 | public static final int View_android_focusable = 0;
613 | public static final int View_paddingEnd = 2;
614 | public static final int View_paddingStart = 1;
615 | }
616 | }
617 |
--------------------------------------------------------------------------------
/atires/gen/com/aw/scaner/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /** Automatically generated file. DO NOT MODIFY */
2 | package com.aw.scaner;
3 |
4 | public final class BuildConfig {
5 | public final static boolean DEBUG = true;
6 | }
--------------------------------------------------------------------------------
/atires/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/ic_launcher-web.png
--------------------------------------------------------------------------------
/atires/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/atires/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 |
--------------------------------------------------------------------------------
/atires/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-14
15 | android.library.reference.1=../android-support-v7-appcompat
16 | android.library.reference.2=../../../software/tesseract-android-tools/tesseract-android-tools
17 |
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/bg_know.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/bg_know.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/bg_replace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/bg_replace.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/bg_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/bg_share.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/button_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/button_normal.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/button_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/button_pressed.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/camera_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/camera_normal.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/camera_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/camera_pressed.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/atires/res/drawable-hdpi/tires.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/res/drawable-hdpi/tires.png
--------------------------------------------------------------------------------
/atires/res/layout/activity_camera.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 |
17 |
21 |
22 |
28 |
36 |
45 |
49 |
57 |
66 |
74 |
75 |
--------------------------------------------------------------------------------
/atires/res/layout/activity_result_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
16 |
17 |
24 |
25 |
--------------------------------------------------------------------------------
/atires/res/layout/img_btn_cam.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/atires/res/layout/img_btn_tire.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/atires/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/atires/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/atires/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/atires/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 | 64dp
9 |
10 |
11 |
--------------------------------------------------------------------------------
/atires/res/values/color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #80808FF0
4 | #F8F8FF00
5 | #FFFFFF
6 | #938192
7 | #7cd12e
8 | #ff000000
9 | #ff0000ff
10 | #ff00ffff
11 | #ff888888
12 | #ff00ff00
13 | #ffcccccc
14 | #ffff00ff
15 | #ffff0000
16 | #00000000
17 | #ffffff00
18 |
--------------------------------------------------------------------------------
/atires/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 |
8 |
--------------------------------------------------------------------------------
/atires/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 文字识别器
4 | Settings
5 | 知识
6 | 换胎
7 | 分享
8 | 输入VIN:
9 |
10 | 输入/扫描汽车识别代号(VIN)
11 | 扫描汽车识别代号(VIN)
12 | 查 询
13 | 文字识别器
14 | 对 焦
15 | 数 字
16 | 中 文
17 | 英 文
18 | VIN
19 | 扫描中. . .
20 | 识别中. . .
21 | 识别完成 .
22 | 识别结果.
23 | 识别失败,未能识别出文字 .
24 | test_ocr.jpg
25 | test_ocr_.jpg
26 | 默认读取文件test_ocr.jpg识别VIN信息。
27 | VIN必须由字母和数字组成,且长度为17。
28 | 返回
29 | 1000
30 | 1001
31 |
32 |
--------------------------------------------------------------------------------
/atires/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/atires/src/com/aw/scaner/AWSqliteDB.java:
--------------------------------------------------------------------------------
1 | package com.aw.scaner;
2 |
3 | import android.content.Context;
4 | import android.database.sqlite.SQLiteDatabase;
5 | import android.database.Cursor;
6 | import android.database.sqlite.SQLiteDatabase.CursorFactory;
7 | import android.database.sqlite.SQLiteOpenHelper;
8 |
9 | public class AWSqliteDB extends SQLiteOpenHelper {
10 | private final static String VIN_DB_PATH = "";
11 | private final static String VIN_DB_NAME = "vin.sqlite3";
12 | private final static int VIN_DB_VERSION = 1;
13 |
14 | private final static String VIN_DATA_TABLE = "t_vin_data";
15 | private final static String[] VIN_DATA_COLUMNS = new String[] { "id", "vin", "remark" };
16 |
17 | private final static String WMI_TABLE = "t_wmi";
18 | private final static String[] WMI_COLUMNS = new String[] { "id", "code", "name", "remark" };
19 | private final static String WMI1_TABLE = "t_wmi1";
20 | private final static String[] WMI1_COLUMNS = new String[]{ "id", "code", "name", "remark" };
21 | private final static String WMI2_TABLE = "t_wmi";
22 | private final static String[] WMI2_COLUMNS = new String[]{ "id", "code", "name_en", "name_cn", "remark" };
23 |
24 | private final static String VDS_TABLE = "t_vds";
25 | private final static String[] VDS_COLUMNS = new String[] { "id", "belong_wmi", "code", "name", "remark" };
26 |
27 | private final static String VIS_TABLE = "t_vis";
28 | private final static String[] VIS_COLUMNS = new String[] { "id", "belong_wmi", "code", "name", "remark" };
29 |
30 | public class ClsVINInfo{
31 | int id = 0;
32 | String vin = "";
33 | int belong_wmi = 0;
34 | String code = "";
35 | String name_en = "";
36 | String name_cn = "";
37 | String remark = "";
38 | }
39 |
40 | public AWSqliteDB(Context context) {
41 | super(context, VIN_DB_NAME, null, VIN_DB_VERSION);
42 | // TODO Auto-generated constructor stub
43 | }
44 | public AWSqliteDB(Context context, String name, CursorFactory factory,
45 | int version) {
46 | super(context, VIN_DB_NAME, factory, VIN_DB_VERSION);
47 | // TODO Auto-generated constructor stub
48 | }
49 |
50 | @Override
51 | public void onCreate(SQLiteDatabase db) {
52 | // TODO Auto-generated method stub
53 |
54 | }
55 |
56 | @Override
57 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
58 | // TODO Auto-generated method stub
59 |
60 | }
61 |
62 | public ClsVINInfo[] queryVINData(String strVIN){
63 | ClsVINInfo[] vinInfo = null;
64 | SQLiteDatabase db = null;
65 | try{
66 | String fullPathDBName = VIN_DB_PATH + VIN_DB_NAME;
67 | db = SQLiteDatabase.openDatabase(fullPathDBName, null, SQLiteDatabase.OPEN_READONLY );
68 | Cursor cur = db.query(VIN_DATA_TABLE, VIN_DATA_COLUMNS, "code=?", new String[] { strVIN }, null, null, null);
69 | if ( cur.getCount() > 0){
70 | vinInfo = new ClsVINInfo[cur.getCount()];
71 | int idx = 0;
72 | while (cur.moveToNext()){
73 | vinInfo[idx].id = cur.getInt(0);
74 | vinInfo[idx].vin = cur.getString(1);
75 | vinInfo[idx].remark = cur.getString(2);
76 | }
77 | }
78 | }
79 | catch (Exception e)
80 | {
81 |
82 | }
83 | finally{
84 | if ( db != null){
85 | db.close();
86 | db = null;
87 | }
88 | }
89 | return vinInfo;
90 | }
91 |
92 | public ClsVINInfo[] queryWMI(String strWMI){
93 | ClsVINInfo[] vinInfo = null;
94 | SQLiteDatabase db = null;
95 | try{
96 | String fullPathDBName = VIN_DB_PATH + VIN_DB_NAME;
97 | db = SQLiteDatabase.openDatabase(fullPathDBName, null, SQLiteDatabase.OPEN_READONLY );
98 | Cursor cur = db.query(WMI_TABLE, WMI_COLUMNS, "code=?", new String[] {strWMI}, null, null, null);
99 | if ( cur.getCount() > 0){
100 | vinInfo = new ClsVINInfo[cur.getCount()];
101 | int idx = 0;
102 | while (cur.moveToNext()){
103 | vinInfo[idx].id = cur.getInt(0);
104 | vinInfo[idx].code = cur.getString(1);
105 | vinInfo[idx].name_en= cur.getString(2);
106 | vinInfo[idx].name_cn= cur.getString(3);
107 | vinInfo[idx].remark = cur.getString(4);
108 | }
109 | }
110 | else{
111 | cur = db.query(WMI1_TABLE, WMI1_COLUMNS, "code=?", new String[] { strWMI.substring(0, 0) }, null, null, null);
112 | if ( cur.getCount() > 0){
113 | vinInfo = new ClsVINInfo[cur.getCount()];
114 | int idx = 0;
115 | while (cur.moveToNext()){
116 | vinInfo[idx].id = cur.getInt(0);
117 | vinInfo[idx].code = cur.getString(1);
118 | vinInfo[idx].name_cn= cur.getString(2);
119 | vinInfo[idx].remark = cur.getString(3);
120 | }
121 | }
122 | else{
123 | cur = db.query(WMI2_TABLE, WMI2_COLUMNS, "code=?", new String[] { strWMI.substring(0, 0) }, null, null, null);
124 | if ( cur.getCount() > 0){
125 | vinInfo = new ClsVINInfo[cur.getCount()];
126 | int idx = 0;
127 | while (cur.moveToNext()){
128 | vinInfo[idx].id = cur.getInt(0);
129 | vinInfo[idx].code = cur.getString(1);
130 | vinInfo[idx].name_cn= cur.getString(2);
131 | vinInfo[idx].remark = cur.getString(3);
132 | }
133 | }
134 | }
135 | }
136 | }
137 | catch (Exception e)
138 | {
139 |
140 | }
141 | finally{
142 | if ( db != null){
143 | db.close();
144 | db = null;
145 | }
146 | }
147 | return vinInfo;
148 | }
149 |
150 | public ClsVINInfo[] queryWMI1(String strWMI1){
151 | ClsVINInfo[] vinInfo = null;
152 | SQLiteDatabase db = null;
153 | try{
154 | String fullPathDBName = VIN_DB_PATH + VIN_DB_NAME;
155 | db = SQLiteDatabase.openDatabase(fullPathDBName, null, SQLiteDatabase.OPEN_READONLY );
156 | Cursor cur = db.query(WMI1_TABLE, WMI1_COLUMNS, "code=?", new String[] { strWMI1 }, null, null, null);
157 | if ( cur.getCount() > 0){
158 | vinInfo = new ClsVINInfo[cur.getCount()];
159 | int idx = 0;
160 | while (cur.moveToNext()){
161 | vinInfo[idx].id = cur.getInt(0);
162 | vinInfo[idx].code = cur.getString(1);
163 | vinInfo[idx].name_cn= cur.getString(2);
164 | vinInfo[idx].remark = cur.getString(3);
165 | }
166 | }
167 | }
168 | catch (Exception e)
169 | {
170 |
171 | }
172 | finally{
173 | if ( db != null){
174 | db.close();
175 | db = null;
176 | }
177 | }
178 | return vinInfo;
179 | }
180 |
181 | public ClsVINInfo[] queryWMI2(String strWMI2){
182 | ClsVINInfo[] vinInfo = null;
183 | SQLiteDatabase db = null;
184 | try{
185 | String fullPathDBName = VIN_DB_PATH + VIN_DB_NAME;
186 | db = SQLiteDatabase.openDatabase(fullPathDBName, null, SQLiteDatabase.OPEN_READONLY );
187 | Cursor cur = db.query(WMI2_TABLE, WMI2_COLUMNS, "code=?", new String[] { strWMI2 }, null, null, null);
188 | if ( cur.getCount() > 0){
189 | vinInfo = new ClsVINInfo[cur.getCount()];
190 | int idx = 0;
191 | while (cur.moveToNext()){
192 | vinInfo[idx].id = cur.getInt(0);
193 | vinInfo[idx].code = cur.getString(1);
194 | vinInfo[idx].name_en= cur.getString(2);
195 | vinInfo[idx].name_cn= cur.getString(3);
196 | vinInfo[idx].remark = cur.getString(4);
197 | }
198 | }
199 | }
200 | catch (Exception e)
201 | {
202 |
203 | }
204 | finally{
205 | if ( db != null){
206 | db.close();
207 | db = null;
208 | }
209 | }
210 | return vinInfo;
211 | }
212 |
213 | public ClsVINInfo[] queryVDS(String strVDS){
214 | ClsVINInfo[] vinInfo = null;
215 | SQLiteDatabase db = null;
216 | try{
217 | String fullPathDBName = VIN_DB_PATH + VIN_DB_NAME;
218 | db = SQLiteDatabase.openDatabase(fullPathDBName, null, SQLiteDatabase.OPEN_READONLY );
219 | Cursor cur = db.query(VDS_TABLE, VDS_COLUMNS, "code=?", new String[] { strVDS }, null, null, null);
220 | if ( cur.getCount() > 0){
221 | vinInfo = new ClsVINInfo[cur.getCount()];
222 | int idx = 0;
223 | while (cur.moveToNext()){
224 | vinInfo[idx].id = cur.getInt(0);
225 | vinInfo[idx].belong_wmi= cur.getInt(1);
226 | vinInfo[idx].code = cur.getString(2);
227 | vinInfo[idx].name_cn= cur.getString(3);
228 | vinInfo[idx].remark = cur.getString(4);
229 | }
230 | }
231 | }
232 | catch (Exception e)
233 | {
234 |
235 | }
236 | finally{
237 | if ( db != null){
238 | db.close();
239 | db = null;
240 | }
241 | }
242 | return vinInfo;
243 | }
244 |
245 | public ClsVINInfo[] queryVIS(String strVIS){
246 | ClsVINInfo[] vinInfo = null;
247 | SQLiteDatabase db = null;
248 | try{
249 | String fullPathDBName = VIN_DB_PATH + VIN_DB_NAME;
250 | db = SQLiteDatabase.openDatabase(fullPathDBName, null, SQLiteDatabase.OPEN_READONLY );
251 | Cursor cur = db.query(VIS_TABLE, VIS_COLUMNS, "code=?", new String[] { strVIS }, null, null, null);
252 | if ( cur.getCount() > 0){
253 | vinInfo = new ClsVINInfo[cur.getCount()];
254 | int idx = 0;
255 | while (cur.moveToNext()){
256 | vinInfo[idx].id = cur.getInt(0);
257 | vinInfo[idx].belong_wmi= cur.getInt(1);
258 | vinInfo[idx].code = cur.getString(2);
259 | vinInfo[idx].name_cn= cur.getString(3);
260 | vinInfo[idx].remark = cur.getString(4);
261 | }
262 | }
263 | }
264 | catch (Exception e)
265 | {
266 |
267 | }
268 | finally{
269 | if ( db != null){
270 | db.close();
271 | db = null;
272 | }
273 | }
274 | return vinInfo;
275 | }
276 |
277 | }
278 |
--------------------------------------------------------------------------------
/atires/src/com/aw/scaner/MuskSurfaceDraw.java:
--------------------------------------------------------------------------------
1 | package com.aw.scaner;
2 |
3 | import android.util.DisplayMetrics;
4 | import android.util.Log;
5 | import android.annotation.SuppressLint;
6 | import android.content.Context;
7 | import android.content.res.Configuration;
8 | import android.graphics.Canvas;
9 | import android.graphics.Color;
10 | import android.graphics.Paint;
11 | import android.graphics.Rect;
12 | import android.graphics.Paint.Style;
13 | import android.graphics.PixelFormat;
14 | import android.graphics.PorterDuffXfermode;
15 | import android.graphics.PorterDuff;
16 | import android.util.AttributeSet;
17 | import android.view.SurfaceHolder;
18 | import android.view.SurfaceView;
19 | import android.view.MotionEvent;
20 |
21 | public class MuskSurfaceDraw extends SurfaceView implements SurfaceHolder.Callback{
22 | protected SurfaceHolder sfHolder = null;
23 | protected Rect rectScan= null;
24 | protected Rect topRect = null;
25 | protected Rect btmRect = null;
26 | protected Rect lftRect = null;
27 | protected Rect RgtRect = null;
28 | protected Paint paintRect = null;
29 | protected Paint paintMask = null;
30 | protected Paint paintEraser=null;
31 | private float lineWidth = (float)3.0;
32 | private int canvasWidth = 0;
33 | private int canvasHight = 0;
34 | private int areaType = 0;
35 | private final int splitCntW = 32;
36 | private final int splitCntH = 32;
37 | private String screenOrientation = "portrait";
38 | //private final boolean bPortrait = false;
39 |
40 | @SuppressLint("ClickableViewAccessibility") @Override
41 | public boolean onTouchEvent(MotionEvent event) {
42 | Log.w("MuskSurfaceDraw", "Touching............");
43 | areaType += 1;
44 | areaType = areaType % 8;
45 |
46 | Canvas cvs = sfHolder.lockCanvas();
47 | if(cvs != null){
48 | myDraw(cvs);
49 | sfHolder.unlockCanvasAndPost(cvs);
50 | }
51 | return super.onTouchEvent(event);
52 | }
53 |
54 | public MuskSurfaceDraw(Context context, AttributeSet attrs) {
55 | super(context, attrs);
56 | sfHolder = getHolder();
57 | if (sfHolder != null){
58 | sfHolder.addCallback(this);
59 | sfHolder.setFormat(PixelFormat.TRANSPARENT);
60 | setZOrderOnTop(true);
61 | }
62 | }
63 |
64 | public void surfaceCreated(SurfaceHolder sfhd) {
65 | Log.i("MuskSurfaceDraw", "MuskSurfaceDraw::surfaceCreated");
66 | paintRect = new Paint();
67 | paintRect.setAntiAlias(true);
68 | paintRect.setColor(Color.GREEN);
69 | paintRect.setStyle(Style.STROKE);
70 | paintRect.setStrokeWidth(lineWidth);
71 |
72 | paintMask = new Paint();
73 | paintMask.setAlpha(150);
74 |
75 | paintEraser = new Paint();
76 | paintEraser.setAlpha(0);
77 | paintEraser.setColor(Color.TRANSPARENT);
78 | paintEraser.setMaskFilter(null);
79 | paintEraser.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
80 |
81 | if(sfhd != null){
82 | Canvas cvs = sfhd.lockCanvas();
83 | if (cvs != null){
84 | myDraw(cvs);
85 | sfhd.unlockCanvasAndPost(cvs);
86 | }
87 | }
88 | }
89 |
90 | public void surfaceChanged(SurfaceHolder arg0, int arg1, int w, int h) {
91 | if(arg0 != null){
92 | Log.i("MuskSurfaceDraw", "surfaceChanged");
93 | if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
94 | Log.i("surfaceChanged", "landscape");
95 | screenOrientation = "landscape";
96 | } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
97 | Log.i("MuskSurfaceDraw", "portrait");
98 | screenOrientation = "portrait";
99 | }
100 | else{
101 | Log.i("MuskSurfaceDraw", "Default set portrait");
102 | screenOrientation = "portrait";
103 | }
104 | Canvas cvs = arg0.lockCanvas();
105 | if (cvs != null){
106 | myDraw(cvs);
107 | arg0.unlockCanvasAndPost(cvs);
108 | }
109 | }
110 | }
111 |
112 | public void surfaceDestroyed(SurfaceHolder arg0) {
113 | }
114 |
115 | @SuppressLint("DefaultLocale") private Rect caclRect(int w, int h, String orientation){
116 | if(orientation.toLowerCase().equals("portrait") && w > h){ //swap width and height;
117 | int tmp = w;
118 | w = h; h = tmp;
119 | }
120 | else if(orientation.toLowerCase().equals("landscape") && w < h){ //swap width and height;
121 | int tmp = w;
122 | w = h; h = tmp;
123 | }
124 | Rect rtTmp = new Rect(0,0,w,h);
125 | float unitW = w / splitCntW;
126 | float unitH = h / splitCntH;
127 | switch(areaType){
128 | case 0:
129 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
130 | rtTmp.top= (int)(5*unitH); rtTmp.bottom = (int)(7*unitH);
131 | break;
132 | case 1:
133 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
134 | rtTmp.top= (int)(5*unitH); rtTmp.bottom = (int)(8*unitH);
135 | break;
136 | case 2:
137 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
138 | rtTmp.top= (int)(3*unitH); rtTmp.bottom = (int)(9*unitH);
139 | break;
140 | case 3:
141 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
142 | rtTmp.top= (int)(3*unitH); rtTmp.bottom = (int)(15*unitH);
143 | break;
144 | case 4:
145 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
146 | rtTmp.top= (int)(2*unitH); rtTmp.bottom = (int)(18*unitH);
147 | break;
148 | case 5:
149 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
150 | rtTmp.top= (int)(2*unitH); rtTmp.bottom = (int)(20*unitH);
151 | break;
152 | case 6:
153 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
154 | rtTmp.top= (int)unitH; rtTmp.bottom = (int)(23*unitH);
155 | break;
156 | case 7:
157 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
158 | rtTmp.top= (int)unitH; rtTmp.bottom = (int)(25*unitH);
159 | break;
160 | default:
161 | rtTmp.left = (int)unitW; rtTmp.right = (int)(unitW * (splitCntW-1));
162 | rtTmp.top= (int)(5*unitH); rtTmp.bottom = (int)(7*unitH);
163 | break;
164 | }
165 | Log.i("caclRect", "Rect :" + rtTmp.width() + "W * " + rtTmp.height() + "H");
166 | return rtTmp;
167 | }
168 |
169 | @SuppressLint("DefaultLocale") private void recaclMastRect(Canvas cvs){
170 | canvasWidth = cvs.getHeight();
171 | canvasHight = cvs.getWidth();
172 | Log.i("MuskSurfaceDraw", "recaclMastRect: " + canvasWidth + " * " + canvasHight);
173 |
174 | DisplayMetrics dm = getResources().getDisplayMetrics();
175 | if(canvasWidth == 0){
176 | canvasWidth = dm.widthPixels;
177 | }
178 | if(canvasHight == 0)
179 | {
180 | canvasHight = dm.heightPixels;
181 | }
182 |
183 | if(screenOrientation.toLowerCase().equals("portrait") && canvasWidth > canvasHight){ //swap width and height;
184 | int tmp = canvasWidth;
185 | canvasWidth = canvasHight; canvasHight = tmp;
186 | }
187 | else if(screenOrientation.toLowerCase().equals("landscape") && canvasWidth < canvasHight){ //swap width and height;
188 | int tmp = canvasWidth;
189 | canvasWidth = canvasHight; canvasHight = tmp;
190 | }
191 | rectScan = caclRect(canvasWidth, canvasHight, screenOrientation);
192 | topRect = new Rect(0, 0, canvasWidth, rectScan.top);
193 | btmRect = new Rect(0, rectScan.bottom, canvasWidth, canvasHight);
194 | lftRect = new Rect(0, rectScan.top, rectScan.left, rectScan.bottom);
195 | RgtRect = new Rect(rectScan.right, rectScan.top, canvasWidth, rectScan.bottom);
196 | }
197 |
198 | void clearDraw(Canvas cvs)
199 | {
200 | Log.w("MuskSurfaceDraw", "clearDraw.......");
201 | if (cvs != null){
202 | Rect rt = new Rect(0, 0, canvasWidth, canvasHight);
203 | cvs.drawColor(Color.TRANSPARENT);
204 | cvs.drawRect(rt, paintEraser);
205 | Log.i("MuskSurfaceDraw", "Clear area:" + rt.left + ", " + rt.top + ", " + rt.right + ", " + rt.bottom);
206 | }
207 | }
208 |
209 | private void myDraw(Canvas canvas){
210 | Log.w("MuskSurfaceDraw", "Drawing.......");
211 | if (canvas != null){
212 | recaclMastRect(canvas);
213 | clearDraw(canvas);
214 | //drawScanRect(canvas);
215 | drawMask(canvas);
216 | }
217 | }
218 |
219 | public void drawScanRect(Canvas cvs)
220 | {
221 | cvs.drawColor(Color.TRANSPARENT);
222 | cvs.drawRect(rectScan, paintRect);
223 | Log.i("MuskSurfaceDraw", "DRAW Rect postion:" + rectScan.left + ", " + rectScan.top + ", " + rectScan.right + ", " + rectScan.bottom);
224 | }
225 |
226 | public void drawMask(Canvas cvs){
227 | cvs.drawColor(Color.TRANSPARENT);
228 | cvs.drawRect(topRect, paintMask);
229 | cvs.drawRect(btmRect, paintMask);
230 | cvs.drawRect(lftRect, paintMask);
231 | cvs.drawRect(RgtRect, paintMask);
232 | }
233 |
234 | public Rect getScanRect(){ return rectScan; }
235 | }
--------------------------------------------------------------------------------
/atires/src/com/aw/scaner/ResultTextActivity.java:
--------------------------------------------------------------------------------
1 | package com.aw.scaner;
2 |
3 | import android.content.Intent;
4 | import android.app.Activity;
5 | //import android.content.Intent;
6 | import android.os.Bundle;
7 | //import android.util.Log;
8 | import android.view.View;
9 | import android.widget.TextView;
10 |
11 | public class ResultTextActivity extends Activity {
12 | private String ocr_result_text = null;
13 | private TextView infoShow = null;
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | //requestWindowFeature(Window.FEATURE_NO_TITLE);
18 | setContentView(R.layout.activity_result_text);
19 |
20 | Intent ntnt = getIntent();
21 | ocr_result_text = ntnt.getStringExtra("scan_vin_code");
22 | String txt = String.format("\n%s\n", ocr_result_text);
23 | infoShow = (TextView)findViewById(R.id.ocr_ok_result);
24 | infoShow.setText(txt);
25 | }
26 |
27 | @Override
28 | protected void onPause() {
29 | super.onPause();
30 | }
31 |
32 | @Override
33 | protected void onResume() {
34 | super.onResume();
35 | }
36 |
37 |
38 | @Override
39 | protected void onDestroy() {
40 |
41 | super.onDestroy();
42 | }
43 |
44 | public void onBtnReturn(View v){
45 | //String tips = String.format(getResources().getString(R.string.publish_desc_tips), tire_replacement_shop_count);
46 | //Toast.makeText(getApplicationContext(), tips, Toast.LENGTH_LONG).show();
47 | finish();
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/atires/src/com/aw/scaner/ScanVINActivity.java:
--------------------------------------------------------------------------------
1 | package com.aw.scaner;
2 |
3 | import java.util.List;
4 | import java.util.ArrayList;
5 | import java.io.File;
6 | import java.io.FileInputStream;
7 | import java.io.FileOutputStream;
8 | import java.io.BufferedOutputStream;
9 | import java.io.InputStream;
10 |
11 | import android.util.Log;
12 | import android.content.Context;
13 | import android.annotation.SuppressLint;
14 | import android.annotation.TargetApi;
15 | import android.app.Activity;
16 | import android.app.ProgressDialog;
17 | import android.os.Build;
18 | import android.os.Bundle;
19 | import android.os.Environment;
20 | import android.os.AsyncTask;
21 | import android.content.Intent;
22 | import android.content.pm.ActivityInfo;
23 | import android.content.res.Configuration;
24 | import android.view.View;
25 | import android.view.SurfaceView;
26 | import android.view.SurfaceHolder;
27 | import android.graphics.Rect;
28 | import android.graphics.Bitmap;
29 | import android.graphics.BitmapFactory;
30 | import android.graphics.Matrix;
31 | import android.graphics.PixelFormat;
32 | import android.graphics.Color;
33 | import android.widget.Toast;
34 | import android.widget.Button;
35 | import android.hardware.Camera;
36 |
37 | import android.content.ContentResolver;
38 | import android.provider.MediaStore;
39 |
40 | import com.googlecode.tesseract.android.*;
41 |
42 | public class ScanVINActivity extends Activity implements SurfaceHolder.Callback, Camera.ShutterCallback, Camera.PictureCallback{
43 | private Camera myCam = null;
44 | private SurfaceView mySView = null;
45 | private MuskSurfaceDraw mySVDraw = null;
46 | private String myOcrText = null;
47 | private final String TESSBASE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "AWScaner" + File.separator;
48 | private String DEFAULT_LANGUAGE = "eng";
49 | private String ENG_DATA = "eng.traineddata";
50 | private String CHI_DATA = "chi_sim.traineddata";
51 | private String OSD_DATA = "osd.traineddata";
52 | private Camera.AutoFocusCallback myAutoFocusCallback;
53 | private Button btnFocus = null;
54 | private Button btnDigit = null;
55 | private Button btnChiSim = null;
56 | private Button btnEn = null;
57 | private Button btnVIN = null;
58 | private boolean bCamInited = false;
59 | private boolean scanDigitOnly = false;
60 | private boolean scanVINOnly = false;
61 | private boolean saveSDCard = false;
62 |
63 | private ProgressDialog pd;
64 |
65 | void initOcrDatabase(){
66 | File dir = new File(TESSBASE_PATH);
67 | if (!dir.exists()) {
68 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
69 | dir.mkdir();
70 | }
71 | else if (!dir.exists()) {
72 | dir = new File(TESSBASE_PATH + "tessdata/");
73 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
74 | dir.mkdir();
75 | }
76 | File f1 = new File(TESSBASE_PATH + "tessdata/" + ENG_DATA);
77 | File f2 = new File(TESSBASE_PATH + "tessdata/" + OSD_DATA);
78 | File f3 = new File(TESSBASE_PATH + "tessdata/" + CHI_DATA);
79 | if (!f1.exists() || !f2.exists() || !f3.exists()) {
80 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
81 | StartFrameTask startFrameTask = new StartFrameTask();
82 | startFrameTask.cntxt = this;
83 | startFrameTask.savePath = TESSBASE_PATH + "tessdata/";
84 | startFrameTask.assetsNames.clear();
85 | startFrameTask.assetsNames.add(ENG_DATA);
86 | startFrameTask.assetsNames.add(OSD_DATA);
87 | startFrameTask.assetsNames.add(CHI_DATA);
88 | startFrameTask.execute();
89 | }
90 | }
91 |
92 | @Override
93 | public void onCreate(Bundle savedInstanceState){
94 | Log.i("ScanVINActivity", "ScanVINActivity::onCreate");
95 | super.onCreate(savedInstanceState);
96 |
97 | setContentView(R.layout.activity_camera);
98 | mySView = (SurfaceView)findViewById(R.id.preview_cam);
99 | mySView.setZOrderOnTop(false);
100 | mySView.getHolder().addCallback(this);
101 | mySView.getHolder().setFormat(PixelFormat.TRANSPARENT);
102 | mySView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
103 |
104 | mySVDraw = (com.aw.scaner.MuskSurfaceDraw)findViewById(R.id.mDraw);
105 | mySVDraw.setVisibility(View.VISIBLE);
106 |
107 | btnFocus = (Button)findViewById(R.id.btn_scan_focus);
108 | btnDigit= (Button)findViewById(R.id.btn_scan_digit);
109 | btnChiSim = (Button)findViewById(R.id.btn_scan_chi_sim);
110 | btnEn = (Button)findViewById(R.id.btn_scan_en);
111 | btnVIN = (Button)findViewById(R.id.btn_scan_vin);
112 |
113 | initOcrDatabase();
114 | }
115 |
116 | @Override
117 | public void onPause(){
118 | super.onPause();
119 | if( myCam != null){
120 | myCam.stopPreview();
121 | }
122 | }
123 |
124 | @Override
125 | public void onDestroy(){
126 | super.onDestroy();
127 | if(myCam != null){
128 | myCam.release();
129 | myCam = null;
130 | bCamInited = false;
131 | }
132 | }
133 |
134 | @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @SuppressLint("NewApi")
135 | public void onBtnScanFocus(View v){
136 | if(myCam != null && bCamInited){
137 | //btnFocus.setEnabled(true));
138 | btnDigit.setEnabled(false);
139 | btnChiSim.setEnabled(false);
140 | btnEn.setEnabled(false);
141 | btnVIN.setEnabled(false);
142 |
143 | Camera.Parameters params = myCam.getParameters();
144 | int nFA = params.getMaxNumFocusAreas();
145 | int nMA = params.getMaxNumMeteringAreas();
146 | Rect rtSurf = new Rect(0, 0, mySView.getWidth(), mySView.getHeight());
147 | Rect rtScan = mySVDraw.getScanRect();
148 | if(rtScan == null){
149 | rtScan = new Rect(rtSurf.centerX()-20, rtSurf.centerY()-20, rtSurf.centerX()+20, rtSurf.centerY()+20);
150 | }
151 | Rect rtTo = new Rect(-1000, -1000, 1000, 1000);
152 | Rect rtFoucus = TransCoordinates(rtSurf, rtTo, rtScan);
153 | Log.e("CAM", "Focus area:" + rtFoucus.left + ", " + rtFoucus.top + ", " + rtFoucus.right + ", " + rtFoucus.bottom);
154 | if (nFA > 0){
155 | Log.w("CAM", "setFocusAreas");
156 | List foucusAreas = new ArrayList();
157 | foucusAreas.add(new Camera.Area(rtFoucus, 1000));
158 | params.setFocusAreas(foucusAreas);
159 | }
160 | if (nMA > 0){
161 | Log.w("CAM", "setMeteringAreas");
162 | List meteringAreas = new ArrayList();
163 | meteringAreas.add(new Camera.Area(rtFoucus, 1000));
164 | params.setMeteringAreas(meteringAreas);
165 | }
166 | myCam.setParameters(params);
167 | myCam.cancelAutoFocus();
168 | myCam.autoFocus(myAutoFocusCallback);
169 | }
170 | }
171 |
172 | public void onBtnScanDigit(View v){
173 | DEFAULT_LANGUAGE = "eng";
174 | if(myCam != null && bCamInited){
175 | scanDigitOnly = true;
176 | scanVINOnly = false;
177 |
178 | btnFocus.setEnabled(false);
179 | btnDigit.setEnabled(false);
180 | btnChiSim.setEnabled(false);
181 | btnEn.setEnabled(false);
182 | btnVIN.setEnabled(false);
183 |
184 | myCam.takePicture(this, null, null, this);
185 | }
186 | }
187 |
188 | public void onBtnScanChiSim(View v){
189 | DEFAULT_LANGUAGE = "chi_sim";
190 | if(myCam != null && bCamInited){
191 | scanDigitOnly = false;
192 | scanVINOnly = false;
193 |
194 | btnFocus.setEnabled(false);
195 | btnDigit.setEnabled(false);
196 | btnChiSim.setEnabled(false);
197 | btnEn.setEnabled(false);
198 | btnVIN.setEnabled(false);
199 |
200 | myCam.takePicture(this, null, null, this);
201 | }
202 | }
203 |
204 | public void onBtnScanEn(View v){
205 | DEFAULT_LANGUAGE = "eng";
206 | if(myCam != null && bCamInited){
207 | scanDigitOnly = false;
208 | scanVINOnly = false;
209 |
210 | btnFocus.setEnabled(false);
211 | btnDigit.setEnabled(false);
212 | btnChiSim.setEnabled(false);
213 | btnEn.setEnabled(false);
214 | btnVIN.setEnabled(false);
215 |
216 | myCam.takePicture(this, null, null, this);
217 | }
218 | }
219 |
220 | public void onBtnScanVIN(View v){
221 | DEFAULT_LANGUAGE = "eng";
222 | if(myCam != null && bCamInited){
223 | scanDigitOnly = false;
224 | scanVINOnly = true;
225 |
226 | btnFocus.setEnabled(false);
227 | btnDigit.setEnabled(false);
228 | btnChiSim.setEnabled(false);
229 | btnEn.setEnabled(false);
230 | btnVIN.setEnabled(false);
231 |
232 | myCam.takePicture(this, null, null, this);
233 | }
234 | }
235 |
236 | @Override
237 | public void onShutter(){
238 | Toast.makeText(this, R.string.cam_shutter_tips , Toast.LENGTH_SHORT).show();
239 | }
240 |
241 | @Override
242 | public void onPictureTaken(byte[] data, Camera cam){
243 | try{
244 | if("chi_sim" == DEFAULT_LANGUAGE ){
245 | ocrCameraAreaData(data);
246 | if (myOcrText.length() > 0){
247 | if(myCam != null){
248 | myCam.stopPreview();
249 | myCam.release();
250 | myCam = null;
251 | bCamInited = false;
252 | }
253 | Intent tnt = new Intent(ScanVINActivity.this, ResultTextActivity.class);
254 | tnt.putExtra("scan_vin_code", myOcrText);
255 | ScanVINActivity.this.startActivity(tnt);
256 | }
257 | else{
258 | Toast.makeText(this, R.string.ocr_failed , Toast.LENGTH_SHORT).show();
259 | }
260 | }
261 | else if ("eng" == DEFAULT_LANGUAGE){
262 | ocrCameraAreaData(data);
263 | if (myOcrText.length() > 0){
264 | if(myCam != null){
265 | myCam.stopPreview();
266 | myCam.release();
267 | myCam = null;
268 | bCamInited = false;
269 | }
270 |
271 | Intent tnt = new Intent(ScanVINActivity.this, ResultTextActivity.class);
272 | tnt.putExtra("scan_vin_code", myOcrText);
273 | ScanVINActivity.this.startActivity(tnt);
274 | }
275 | else{
276 | Toast.makeText(this, R.string.ocr_failed , Toast.LENGTH_SHORT).show();
277 | }
278 | }
279 | if (myCam != null) myCam.startPreview();
280 | }
281 | catch(Exception e){
282 | e.printStackTrace();
283 | }
284 | btnFocus.setEnabled(true);
285 | btnDigit.setEnabled(true);
286 | btnChiSim.setEnabled(true);
287 | btnEn.setEnabled(true);
288 | btnVIN.setEnabled(true);
289 | }
290 |
291 | public String OcrFiltered(String strOCR){
292 | String strFiltered = "";
293 | for(int idx = 0; idx < strOCR.length(); idx++){
294 | char ch = strOCR.charAt(idx);
295 | if (Character.isLetterOrDigit(ch) || ch == ' ' || ch == ',' || ch == '.' || ch == '?' || ch == '!'){
296 | strFiltered += ch;
297 | }
298 | else{
299 | strFiltered += ' ';
300 | }
301 | }
302 | return strFiltered;
303 | }
304 |
305 | public Bitmap convertRGB2GreyImg(Bitmap img){
306 | int width = img.getWidth();
307 | int height= img.getHeight();
308 | int []pixels = new int[width * height];
309 | img.getPixels(pixels, 0, width, 0, 0, width, height);
310 | int alpha = 0xFF << 24;
311 | for(int i = 0; i < height; i++) {
312 | for(int j = 0; j < width; j++) {
313 | int grey = pixels[width * i + j];
314 | int red = ((grey & 0x00FF0000 ) >> 16);
315 | int green = ((grey & 0x0000FF00) >> 8);
316 | int blue = (grey & 0x000000FF);
317 | grey = (int)((float) red * 0.3 + (float)green * 0.59 + (float)blue * 0.11);
318 | grey = alpha | (grey << 16) | (grey << 8) | grey;
319 | pixels[width * i + j] = grey;
320 | }
321 | }
322 | Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
323 | result.setPixels(pixels, 0, width, 0, 0, width, height);
324 | return result;
325 | }
326 |
327 | private void ocrCameraAreaData(byte[] data){
328 | Log.i("CAM", "ocrCameraAreaData...");
329 | Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
330 | if(mBitmap == null){
331 | Log.e("Bitmap", "BitmapFactory.decodeByteArray(data, 0, data.length);" );
332 | }
333 | Matrix matrix = new Matrix();
334 | Bitmap rotaBitmap = mBitmap;
335 | if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
336 | //matrix.postRotate((float)90.0);
337 | } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
338 | matrix.postRotate((float)90.0);
339 | rotaBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, false);
340 | if(rotaBitmap == null){
341 | Log.e("Bitmap", "createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, false);" );
342 | }
343 | }
344 | else{
345 | matrix.postRotate((float)90.0);
346 | rotaBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, false);
347 | if(rotaBitmap == null){
348 | Log.e("Bitmap", "createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, false);" );
349 | }
350 | }
351 |
352 | Bitmap scaledBitmap = Bitmap.createScaledBitmap(rotaBitmap, mySView.getWidth(), mySView.getHeight(), true);
353 | if(scaledBitmap == null){
354 | Log.e("Bitmap", "Bitmap.createScaledBitmap(rotaBitmap, mySView.getWidth(), mySView.getHeight(), true);" );
355 | }
356 | Rect rt = mySVDraw.getScanRect();
357 | Bitmap rectBitmap = Bitmap.createBitmap(scaledBitmap, rt.left, rt.top, rt.width(), rt.height());
358 | if(scaledBitmap == null){
359 | Log.e("Bitmap", "Bitmap.createBitmap(scaledBitmap, rt.left, rt.top, rt.width(), rt.height());" );
360 | }
361 | Bitmap binBitmap = convertRGB2GreyImg(rectBitmap);
362 | Bitmap greyBitmap = binarizationBitmap(binBitmap);
363 |
364 | Log.i("PICTURE", "OriginBMPSize:" + mBitmap.getWidth() + "W *" + mBitmap.getHeight() + "H");
365 | Log.i("PICTURE", "SurfSize:" + mySView.getWidth() + "W *" + mySView.getHeight() + "H" );
366 | Log.i("PICTURE", "RotaBMPSize:" + rotaBitmap.getWidth() + "W *" + rotaBitmap.getHeight() + "H");
367 | Log.i("PICTURE", "ScaledBMPSize:" + scaledBitmap.getWidth() + "W *" + scaledBitmap.getHeight() + "H");
368 | Log.i("PICTURE", "mySVDrawPSize:" + rt.width() + "W *" + rt.height() + "H");
369 | Log.i("PICTURE", "RectBMPSize:" + rectBitmap.getWidth() + "W *" + rectBitmap.getHeight() + "H");
370 | if(null == greyBitmap)
371 | {
372 | Log.e("Bitmap", "createBitmap(sizeBitmap, rt.left, rt.top, rt.width(), rt.height());" );
373 | }
374 | else{
375 | ContentResolver resolver = getContentResolver();
376 | MediaStore.Images.Media.insertImage(resolver, greyBitmap, "ocr", "ocr image.");
377 | }
378 | String fileName = "scan_vin.jpg";
379 | try {
380 |
381 | File fullPathFile = null;
382 | FileOutputStream outStream = null;
383 | if(saveSDCard){
384 | fullPathFile = new File(TESSBASE_PATH, fileName);
385 | outStream = new FileOutputStream(fullPathFile); //SSD CARD file opt.
386 | Log.i("SAVE", "saveJpeg: " + fullPathFile);
387 | }
388 | else{
389 | outStream = this.openFileOutput(fileName, Activity.MODE_PRIVATE); // internal memory file opt.
390 | }
391 | BufferedOutputStream bufferStream = new BufferedOutputStream(outStream);
392 | greyBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bufferStream);
393 | bufferStream.flush();
394 | bufferStream.close();
395 | outStream.close();
396 |
397 | FileInputStream inputStream = null;
398 | if( saveSDCard ){
399 | inputStream = new FileInputStream(fullPathFile); //SSD CARD file opt.
400 | }
401 | else{
402 | inputStream = this.openFileInput(fileName); // internal memory file opt.
403 | }
404 | BitmapFactory.Options options=new BitmapFactory.Options();
405 | options.inSampleSize=2;
406 | Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null, options);
407 | inputStream.close();
408 |
409 | if(saveSDCard){
410 | //fullPathFile.delete(); //SSD CARD file opt.
411 | }
412 | else{
413 | //this.deleteFile( fileName ); // internal memory file opt.
414 |
415 | }
416 | if(bitmap == null){
417 | Log.e("Bitmap", "BitmapFactory.decodeStream(instream, null, options);" );
418 | }
419 | Toast.makeText(this, R.string.ocr_vin_tips, Toast.LENGTH_SHORT).show();
420 | TessBaseAPI baseApi=new TessBaseAPI();
421 | Log.w("TESSBASE_PATH", TESSBASE_PATH);
422 | if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
423 | Log.v("SD Card", "SD state is :" + Environment.getExternalStorageState());
424 | }
425 | baseApi.init(TESSBASE_PATH, DEFAULT_LANGUAGE);
426 | if(scanDigitOnly){
427 | baseApi.setVariable("tessedit_char_whitelist", "0123456789-,.");
428 | }
429 | else if(scanVINOnly){
430 | baseApi.setVariable("tessedit_char_whitelist", "0123456789ABCDEFGHJKLMNPRSTUVWXYZabcdefghjklmnprstuvwxyz");
431 | }
432 |
433 | baseApi.setImage(bitmap);
434 | String ocrStr = baseApi.getUTF8Text();
435 | myOcrText = OcrFiltered(ocrStr);
436 | Log.i("OCR", ocrStr);
437 | Log.e("OCR", myOcrText);
438 | Toast.makeText(this, R.string.ocr_finish_tips, Toast.LENGTH_SHORT).show();
439 | baseApi.clear();
440 | baseApi.end();
441 | } catch (Exception e) {
442 | Log.e("OCR", "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE");
443 | e.printStackTrace();
444 | }
445 | }
446 |
447 | public Rect getScreenRect(){
448 | Rect rt = new Rect(0, 0, 0, 0);
449 | int screenW = getWindowManager().getDefaultDisplay().getWidth();
450 | int screenH = getWindowManager().getDefaultDisplay().getHeight();
451 | rt.left = 0; rt.right = screenW; rt.top = 0; rt.bottom = screenH;
452 | return rt;
453 | }
454 |
455 | private boolean checkInSize(List sizeList, Rect sizeChecked){
456 | int w = sizeChecked.width(), h = sizeChecked.height();
457 | for(Camera.Size sz:sizeList){
458 | if(sz.width == w && sz.height == h) return true;
459 | }
460 | return false;
461 | }
462 |
463 | private Rect findOneGoodRect(List sizeListPreview, List sizeListPicture){
464 | Rect rt = new Rect(0, 0, 0, 0);
465 | for(Camera.Size szPrev:sizeListPreview){
466 | for(Camera.Size szPict:sizeListPicture){
467 | if(szPrev.width == szPict.width && szPrev.height == szPict.height ){
468 | rt.right = szPrev.width; rt.bottom = szPrev.height;
469 | return rt;
470 | }
471 | }
472 | }
473 | return rt;
474 | }
475 |
476 | @SuppressLint("NewApi")
477 | private void initCamera(Camera myCam0){
478 | Camera.Parameters params = myCam0.getParameters();
479 | //params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
480 |
481 | int maxZoom = params.getMaxZoom();
482 | params.setZoom(1);
483 | Log.i("CAM", "initCamera: MaxZoom = " + maxZoom);
484 | Log.w("CAM", "initCamera: Zoom=1");
485 |
486 | List sizesSupportedPrev = params.getSupportedPreviewSizes();
487 | for(Camera.Size sz:sizesSupportedPrev){
488 | Log.i("CAM", "initCamera: width = "+sz.width+", height = "+sz.height);
489 | }
490 | List sizesSupportedPict = params.getSupportedPictureSizes();
491 | for(Camera.Size sz:sizesSupportedPict){
492 | Log.i("CAM", "initCamera: width = "+sz.width+", height = "+sz.height);
493 | }
494 | Rect screenRT = getScreenRect();
495 | if (checkInSize(sizesSupportedPrev, screenRT) && checkInSize(sizesSupportedPict, screenRT)){
496 | params.setPreviewSize(screenRT.width(), screenRT.height());
497 | params.setPictureSize(screenRT.width(), screenRT.height());
498 |
499 | }
500 | else{
501 | Rect rt = findOneGoodRect(sizesSupportedPrev, sizesSupportedPict);
502 | if (rt.width() > 0 && rt.height() > 0){
503 | params.setPreviewSize(rt.width(), rt.height());
504 | params.setPictureSize(rt.width(), rt.height());
505 | }
506 | else{
507 | Camera.Size sz = sizesSupportedPrev.get(0);
508 | params.setPreviewSize(sz.width, sz.height);
509 | sz = sizesSupportedPict.get(0);
510 | params.setPictureSize(sz.width, sz.height);
511 | }
512 | }
513 | Log.w("CAM", "initCamera: width = " + params.getPreviewSize().width +", height = " + params.getPreviewSize().height);
514 | Log.w("CAM", "initCamera: width = " + params.getPictureSize().width +", height = " + params.getPictureSize().height);
515 |
516 | List focusSupported = params.getSupportedFocusModes();
517 | for(String fcs:focusSupported){
518 | Log.i("CAM", "initCamera: " + fcs);
519 | }
520 | if(focusSupported.contains("macro")){
521 | params.setFocusMode(Camera.Parameters.FOCUS_MODE_MACRO);
522 | Log.w("CAM", "initCamera: macro");
523 | }/*else if(focusSupported.contains("continuous-picture")){
524 | params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
525 | Log.w("CAM", "initCamera: continuous-picture");
526 | }*/else if(focusSupported.contains("continuous-video")){
527 | params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO );
528 | Log.w("CAM", "initCamera: continuous-video");
529 | }else if(focusSupported.contains("auto")){
530 | params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
531 | Log.w("CAM", "initCamera: auto");
532 | }
533 | else if(focusSupported.contains("infinity")){
534 | params.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY);
535 | Log.w("CAM", "initCamera: infinity");
536 | }
537 | int nFA = params.getMaxNumFocusAreas();
538 | int nMA = params.getMaxNumMeteringAreas();
539 | Log.w("CAM", "getMaxNumFocusAreas:" + nFA);
540 | Log.w("CAM", "getMaxNumMeteringAreas:" + nMA);
541 | Rect rtSurf = new Rect(0, 0, mySView.getWidth(), mySView.getHeight());
542 | Rect rtScan = mySVDraw.getScanRect();
543 | if(rtScan == null){
544 | rtScan = new Rect(rtSurf.centerX()-20, rtSurf.centerY()-20, rtSurf.centerX()+20, rtSurf.centerY()+20);
545 | }
546 | Rect rtTo = new Rect(-1000, -1000, 1000, 1000);
547 | Rect rtFoucus = TransCoordinates(rtSurf, rtTo, rtScan);
548 | if (nFA > 0){
549 | Log.i("CAM", "setFocusAreas");
550 | List foucusAreas = new ArrayList();
551 | foucusAreas.add(new Camera.Area(rtFoucus, 1000));
552 | params.setFocusAreas(foucusAreas);
553 | }
554 | if (nMA > 0){
555 | Log.i("CAM", "setMeteringAreas");
556 | List meteringAreas = new ArrayList();
557 | meteringAreas.add(new Camera.Area(rtFoucus, 1000));
558 | params.setMeteringAreas(meteringAreas);
559 | }
560 |
561 | try {
562 | myCam0.setParameters(params);
563 | if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
564 | //myCam0.setDisplayOrientation(90);
565 | } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
566 | myCam0.setDisplayOrientation(90);
567 | }
568 | else{
569 | myCam0.setDisplayOrientation(90);
570 | }
571 | //myCam0.startPreview();
572 | bCamInited = true;
573 | } catch (Exception e) {
574 | Log.e("CAM", "EEEEEEEEEEEEEEEE");
575 | e.printStackTrace();
576 | }
577 | }
578 |
579 | private Rect TransCoordinates(Rect rectFrom, Rect rectTo, Rect rectTransed){
580 | Log.i("TransCoordinates", "From area:" + rectFrom.left + ", " + rectFrom.top + ", " + rectFrom.right + ", " + rectFrom.bottom);
581 | Log.i("TransCoordinates", "To area:" + rectTo.left + ", " + rectTo.top + ", " + rectTo.right + ", " + rectTo.bottom);
582 | Log.i("TransCoordinates", "Transed area:" + rectTransed.left + ", " + rectTransed.top + ", " + rectTransed.right + ", " + rectTransed.bottom);
583 | Rect rt = new Rect(0, 0, 0, 0);
584 |
585 | float rW = (float)rectTo.width() / (float)rectFrom.width();
586 | float rH = (float)rectTo.height() / (float)rectFrom.height();
587 |
588 | float offsetW = (float)rectTransed.left * rW;
589 | float offsetH = (float)rectTransed.top * rH;
590 |
591 | float newW = (float)rectTransed.width() * rW;
592 | float newH = (float)rectTransed.height()* rH;
593 |
594 | rt.left = rectTo.left + (int)offsetW;
595 | rt.top = rectTo.top + (int)offsetH;
596 | rt.right = rt.left + (int)newW;
597 | rt.bottom= rt.top + (int)newH;
598 | Log.i("CAM", "Result area:" + rt.left + ", " + rt.top + ", " + rt.right + ", " + rt.bottom);
599 | return rt;
600 | }
601 |
602 | @Override
603 | public void surfaceCreated(SurfaceHolder holder){
604 | Log.i("ScanVINActivity", "ScanVINActivity::surfaceCreated");
605 | }
606 |
607 | @Override
608 | public void surfaceChanged(SurfaceHolder holder, int format, int width, int height){
609 | Log.i("ScanVINActivity", "ScanVINActivity::surfaceCreated");
610 | try{
611 | if(myCam == null){
612 | myAutoFocusCallback = new Camera.AutoFocusCallback() {
613 | public void onAutoFocus(boolean success, Camera camera) {
614 | if(success){
615 | camera.setOneShotPreviewCallback(null);
616 | Toast.makeText(ScanVINActivity.this, "Focus OK!", Toast.LENGTH_SHORT).show();
617 |
618 | //btnFocus.setEnabled(true));
619 | btnDigit.setEnabled(true);
620 | btnChiSim.setEnabled(true);
621 | btnEn.setEnabled(true);
622 | btnVIN.setEnabled(true);
623 | Log.w("CAM", "Auto focus ok.");
624 | }
625 | else{
626 | Log.w("CAM", "camera auto focusing...");
627 | camera.cancelAutoFocus();
628 | camera.autoFocus(myAutoFocusCallback);
629 | }
630 | }
631 | };
632 | myCam = Camera.open();
633 | initCamera(myCam);
634 | myCam.startPreview();
635 | myCam.setPreviewDisplay(mySView.getHolder());
636 | myCam.autoFocus(myAutoFocusCallback);
637 | }
638 | }
639 | catch(Exception e){
640 | Log.e("Surface", "EEEEEEEEEEEEEEEEEE");
641 | e.printStackTrace();
642 | }
643 | }
644 |
645 | public Bitmap binarizationBitmap(Bitmap img) {
646 | int width = img.getWidth();
647 | int height = img.getHeight();
648 | int area = width * height;
649 | int gray[][] = new int[width][height];
650 | int average = 0;
651 | int graysum = 0;
652 | int graymean = 0;
653 | int grayfrontmean = 0;
654 | int graybackmean = 0;
655 | int pixelGray;
656 | int front = 0;
657 | int back = 0;
658 | int[] pix = new int[width * height];
659 | img.getPixels(pix, 0, width, 0, 0, width, height);
660 | for (int i = 1; i < width; i++) {
661 | for (int j = 1; j < height; j++) {
662 | int x = j * width + i;
663 | int r = (pix[x] >> 16) & 0xff;
664 | int g = (pix[x] >> 8) & 0xff;
665 | int b = pix[x] & 0xff;
666 | pixelGray = (int) (0.3 * r + 0.59 * g + 0.11 * b);
667 | gray[i][j] = (pixelGray << 16) + (pixelGray << 8) + (pixelGray);
668 | graysum += pixelGray;
669 | }
670 | }
671 | graymean = (int) (graysum / area);
672 | average = graymean;
673 | Log.i("binarization","Average:"+average);
674 | for (int i = 0; i < width; i++)
675 | {
676 | for (int j = 0; j < height; j++) {
677 | if (((gray[i][j]) & (0x0000ff)) < graymean) {
678 | graybackmean += ((gray[i][j]) & (0x0000ff));
679 | back++;
680 | } else {
681 | grayfrontmean += ((gray[i][j]) & (0x0000ff));
682 | front++;
683 | }
684 | }
685 | }
686 | int frontvalue = (int) (grayfrontmean / front);
687 | int backvalue = (int) (graybackmean / back);
688 | float G[] = new float[frontvalue - backvalue + 1];
689 | int s = 0;
690 | Log.i("binarization","Front:"+front+"**Frontvalue:"+frontvalue+"**Backvalue:"+backvalue);
691 | for (int i1 = backvalue; i1 < frontvalue + 1; i1++)
692 | {
693 | back = 0;
694 | front = 0;
695 | grayfrontmean = 0;
696 | graybackmean = 0;
697 | for (int i = 0; i < width; i++) {
698 | for (int j = 0; j < height; j++) {
699 | if (((gray[i][j]) & (0x0000ff)) < (i1 + 1)) {
700 | graybackmean += ((gray[i][j]) & (0x0000ff));
701 | back++;
702 | } else {
703 | grayfrontmean += ((gray[i][j]) & (0x0000ff));
704 | front++;
705 | }
706 | }
707 | }
708 | grayfrontmean = (int) (grayfrontmean / front);
709 | graybackmean = (int) (graybackmean / back);
710 | G[s] = (((float) back / area) * (graybackmean - average)
711 | * (graybackmean - average) + ((float) front / area)
712 | * (grayfrontmean - average) * (grayfrontmean - average));
713 | s++;
714 | }
715 | float max = G[0];
716 | int index = 0;
717 | for (int i = 1; i < frontvalue - backvalue + 1; i++) {
718 | if (max < G[i]) {
719 | max = G[i];
720 | index = i;
721 | }
722 | }
723 |
724 | for (int i = 0; i < width; i++) {
725 | for (int j = 0; j < height; j++) {
726 | int in = j * width + i;
727 | if (((gray[i][j]) & (0x0000ff)) < (index + backvalue)) {
728 | pix[in] = Color.rgb(0, 0, 0);
729 | } else {
730 | pix[in] = Color.rgb(255, 255, 255);
731 | }
732 | }
733 | }
734 |
735 | Bitmap temp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
736 | temp.setPixels(pix, 0, width, 0, 0, width, height);
737 | return temp;
738 | }
739 |
740 | @Override
741 | public void surfaceDestroyed(SurfaceHolder holder){}
742 |
743 | private void startProgressDialog() {
744 | if (pd == null) {
745 | pd = new ProgressDialog(this);
746 | pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
747 | pd.setMessage("loading ocr database...");
748 | pd.setCancelable(false);
749 | }
750 | pd.show();
751 | }
752 |
753 | private void stopProgressDialog() {
754 | if (pd != null) {
755 | pd.dismiss();
756 | pd = null;
757 | }
758 | }
759 |
760 | public class StartFrameTask extends AsyncTask {
761 | public Context cntxt = null;
762 | public String savePath= null;
763 | public List assetsNames = new ArrayList();
764 |
765 | public void copyFromAssets() {
766 | if (cntxt != null && savePath != null && assetsNames != null){
767 | File dir = new File(savePath);
768 | if (!dir.exists()) dir.mkdir();
769 | List copiedFiles = null;
770 | int availableTotal = 0;
771 | try{
772 | copiedFiles = new ArrayList();
773 | for (String aName : assetsNames){
774 | File f = new File(savePath + aName);
775 | if ( !f.exists() ) {
776 | InputStream is = cntxt.getResources().getAssets().open(aName);
777 | availableTotal += is.available();
778 | is.close();
779 | copiedFiles.add(aName);
780 | }
781 | }
782 | }
783 | catch(Exception e){
784 | Log.e("copyFromAssets", "calculate copy size exception.");
785 | e.printStackTrace();
786 | availableTotal = 0;
787 | copiedFiles.clear();
788 | }
789 | try {
790 | if (availableTotal > 0 && copiedFiles.size() > 0 ){
791 | pd.setMax( availableTotal );
792 | Log.w("copyFromAssets", "availableTotal:" + availableTotal);
793 | int process = 0;
794 | for (String aName : copiedFiles){
795 | File f = new File(savePath + aName);
796 | if ( !f.exists() ) {
797 | InputStream is = cntxt.getResources().getAssets().open(aName);
798 | FileOutputStream fos = new FileOutputStream(savePath + aName);
799 | byte[] buffer = new byte[8192]; // 8K
800 | int count = 0;
801 | while ((count = is.read(buffer)) > 0) {
802 | fos.write(buffer, 0, count);
803 | process += count;
804 | pd.setProgress(process);
805 | }
806 | fos.close();
807 | is.close();
808 | }
809 | }
810 | }
811 | else{
812 | Log.e("copyFromAssets", "availableTotal:" + availableTotal);
813 | Log.e("copyFromAssets", "copiedFiles.size():" + copiedFiles.size());
814 | }
815 | } catch (Exception e) {
816 | Log.e("copyFromAssets", "copy data exception.");
817 | e.printStackTrace();
818 | }
819 | }
820 | }
821 |
822 | public StartFrameTask() { }
823 |
824 | @Override
825 | protected void onCancelled() {
826 | stopProgressDialog();
827 | super.onCancelled();
828 | }
829 |
830 | @Override
831 | protected Integer doInBackground(Integer... params) {
832 | try {
833 | Thread.sleep(300);
834 | } catch (InterruptedException e) {
835 | e.printStackTrace();
836 | }
837 | copyFromAssets();
838 | return null;
839 | }
840 |
841 | @Override
842 | protected void onPreExecute() {
843 | startProgressDialog();
844 | }
845 |
846 | @Override
847 | protected void onPostExecute(Integer result) {
848 | stopProgressDialog();
849 | }
850 |
851 | }
852 | }
853 |
--------------------------------------------------------------------------------
/atires/src/com/aw/scaner/VINManager.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aceway/textScanner/9a712e1ac97284dd7b27fe5cbd075a3b7bd471de/atires/src/com/aw/scaner/VINManager.java
--------------------------------------------------------------------------------