Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New CameraAndBarcode Demo #119

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,4 @@ ThirdParty/Firebase/iOS/Firebase.6.*
**/Service/*.java
**/Service/JavaClasses
dbgout.log
Thumbs.db
50 changes: 50 additions & 0 deletions Demos/BarcodeAndCamera/AndroidManifest.template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="%package%"
android:versionCode="%versionCode%"
android:versionName="%versionName%"
android:installLocation="%installLocation%">
<uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
<%uses-permission%>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<queries>
<%queries-child-elements%>
</queries>
<application
android:persistent="%persistent%"
android:restoreAnyVersion="%restoreAnyVersion%"
android:label="%label%"
android:debuggable="%debuggable%"
android:largeHeap="%largeHeap%"
android:icon="%icon%"
android:theme="%theme%"
android:hardwareAccelerated="%hardwareAccelerated%"
android:resizeableActivity="false"
android:requestLegacyExternalStorage="true">
<%provider%>
<%application-meta-data%>
<%uses-libraries%>
<%services%>
<!-- Our activity is a subclass of the built-in NativeActivity framework class.
This will take care of integrating with our NDK code. -->
<activity
android:name="com.embarcadero.firemonkey.FMXNativeActivity"
android:exported="true"
android:label="%activityLabel%"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:launchMode="singleTask">
<!-- Tell NativeActivity the name of our .so -->
<meta-data android:name="android.app.lib_name" android:value="%libNameValue%" />

<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<%activity%>
<%receivers%>
</application>
</manifest>
<!-- END_INCLUDE(manifest) -->
230 changes: 230 additions & 0 deletions Demos/BarcodeAndCamera/BC.Forms.Main.fmx
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
object frmMain: TfrmMain
Left = 0
Top = 0
Caption = 'Form2'
ClientHeight = 664
ClientWidth = 392
Fill.Kind = Solid
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
OnClose = FormClose
OnShow = FormShow
DesignerMasterStyle = 0
object BottomLayout: TLayout
Align = Bottom
Padding.Left = 4.000000000000000000
Padding.Top = 4.000000000000000000
Padding.Right = 4.000000000000000000
Padding.Bottom = 4.000000000000000000
Position.Y = 544.000000000000000000
Size.Width = 392.000000000000000000
Size.Height = 120.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
object txtFlash: TText
Align = Left
Position.X = 4.000000000000000000
Position.Y = 4.000000000000000000
Size.Width = 50.000000000000000000
Size.Height = 68.000000000000000000
Size.PlatformDefault = False
Text = #55357#56614
TextSettings.Font.Size = 40.000000000000000000
OnClick = txtFlashClick
object ShadowEffect1: TShadowEffect
Distance = 3.000000000000000000
Direction = 45.000000000000000000
Softness = 0.200000002980232200
Opacity = 0.600000023841857900
ShadowColor = claBlack
end
end
object txtSwap: TText
Align = Right
Position.X = 338.000000000000000000
Position.Y = 4.000000000000000000
RotationAngle = 75.000000000000000000
Size.Width = 50.000000000000000000
Size.Height = 68.000000000000000000
Size.PlatformDefault = False
Text = #8635
TextSettings.Font.Size = 60.000000000000000000
OnClick = txtSwapClick
object ShadowEffect2: TShadowEffect
Distance = 3.000000000000000000
Direction = 45.000000000000000000
Softness = 0.200000002980232200
Opacity = 0.600000023841857900
ShadowColor = claBlack
end
end
object txtScans: TMemo
Touch.InteractiveGestures = [Pan, LongTap, DoubleTap]
DataDetectorTypes = []
ReadOnly = True
Align = Client
Margins.Left = 8.000000000000000000
Margins.Right = 8.000000000000000000
Size.Width = 268.000000000000000000
Size.Height = 68.000000000000000000
Size.PlatformDefault = False
TabOrder = 2
OnClick = txtScansClick
Viewport.Width = 268.000000000000000000
Viewport.Height = 68.000000000000000000
end
object ExposureSlider: TNativeSlider
Align = Bottom
MaxImage.PNG = {
89504E470D0A1A0A0000000D49484452000000500000005008060000008E11F2
AD000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
09B449444154785EED9C6D8C1D551DC6CF99B9F7D65AA45D015F8212B24D37F1
9DFAC12AD86AC20762A24114DA622B064C2C4413F960304509608C25443F6882
502346A19A5D6A110831E18384B254BA35D9DAE8076D6D53C504022DA58196F6
DE3B33FE9E39E72E77EF7697EEBD67F68E7A9FE4BFE7CCFFCC9D79CE33E77DCE
AC196080010618608001FA04EBC3D221CBCC526CB5E2D69A71EC789E50329452
40841BC6AE495373A58EA3C83C8280BFC50EE5270C303710EEDA7ADDFC131133
99E2F2F9E45221F261D9701EC2BDCBC75522153FCF1D950B651550C87C28B4C7
4B85320BD8DE3E97B6B32BAB8012AC53C0528A5856015FA4E77DCEC7D50B2BFE
923B2A17820848231F63152C54299944B4DFD1FBBE2ED330463E97D41BC4D173
8DBDAB2704C93064346E5BCA38ED2F58D3BBBB863249A09EF8621D73CDC30447
097BEE4CB8A6C4FB10D73A8EF57F5CC9F86C73B36976637B93C46C83DCB04FEA
195C4B253B484911C44D1CC5559CC5DD272D3C7CE6864584301FF09E3E6D1A10
7C00622BFD69A58138899B38B6F87AEEAA3DC11ED259839B56444A4FB345A865
10FD39E125FED4BE435CE0747F3B4719DC27958655FCA9F346D76D2037D56F63
44FC2544D6D56AD349E0BF97C67FB3DA1AEF9A1359767B946513556B2B9486C5
C44F5B6B17E59D1CF19438EDDFEB699635136B5735ACBD33CD7FF82680E732B8
6C81CB8DDE9583CEA951A99831FCD773C835BB6B5F7BEE4420380CC13B20F265
EFCAC113DF8DEF87D80EEF9A1369BAF11DC69C5AC33319A178BC1B1753B7F4ED
2E357A993F7422F679AEBCDF98B73C1D45DB5E746973036E5FC4BE15C7E6E3DE
9503DF8370BBA3D78E24542F7C0984BE01A1AF7A9704FC23C7B7614F7AD70CA4
E9BAE5FCFA0A7E7F5996A5B445D110F125D822631A58B5EACE6C348853248DEC
84B5E9316BA343C477918527A268ECA03B6F26E07539F63D04BCD4BBE4BB9FDF
DE03B7BDDED5358208287811BF46A80E2481DC4384BF263CEAD32940AE9A20DC
08C16A4ADAA7D3345B55A9D81508A4149DA9533C5AF1769A8AAB66374CB3991D
88223BC1859FC2318E9094CECE7BE58B101B08D712C6F8F7625BE1B54FE9BD22
988002C4976197133D86ED6B89D742965D730EA27D8C92F605DACDF5B55AEC57
583A853B1BB484547B961CA53D1BA5643E8C727BACDDFE5A9EE0E145FC083684
787FC05EC9130220A8807301E19801AC5B4766BE1DC7157AE8445E97D833948D
9866A3B1971279B7B563630819EAE27362C1044CD3ABBF9324F606AA6BB081F6
99D06C2607E338FA45146DFF8177158AC21613D40EB930B34EBCEC3A275E91CF
CC9A4AA5B29C07755D9AAEDDAC7BCBDBE252040A2D81AECD339FA347FEFE1BE2
155DB3DC3D5C498CBF4B4D7EBCB34D0C89C24AA0A00E234DED2D0B279EA07BA8
24C6CBE9E16F1107E72F068509A8A18A7A5BD761080BD2A67BB87BC57175A538
F861532128B004666B18AA5CEB7ADB7E21A12A9BF544F2F7CB45A0100135C3A0
ED5B53AB55988A2D64C9EB446634D6A41A3360D7AC273C0A2A81D915B43FCC3D
FB29DE1BD06C479CFC6150142220A5EF32373D3BAB05938291D2A1D815E2E41D
411154402D496955450B036E6E5B8612280E55B8A5C38EDBED41F31C58C00954
3BB546AB2AE5287D2DA4708B96316B5EED3886435001DD62A8D6F3CC927294BE
16F225E873888C388EE130E74C0421F4BE800678DABE14FD46EF6827AD3507B0
29A534F360E0BCC5AD50471794A71446A65E4F5FAA54B2D12832B7B6CF4CC89F
5E73D25E9B8F62709EF6E4F52670029B75D1755601B9A8F6E76D428CAF136A73
8F2EACF32D249EC31EC1B670F1233A5F48D30DE766597D6B14D9CF70DAD2E95C
FA897C16743C4DCDEFAD3DB5298A1E7BD5F9F37C9E8FFF56EC4AECBD7279D39A
E20B958AB987702B76C65713B356612EBC9A0B7EBE5A3517D56A0CA76A66910F
AB5C546FE36EE29C8BB1A92A616D1DA6D950BD6E6ADE551AC0496DDF50EB3D8B
20EECA0379B9517952DEDAF3AABC4B03CEF9A4FFC90C046D03FF1F31AB8014D9
7155D346C3FC8BA757C74EFBB0C1133BC413FB29E71CC6A6E66A5956A3E8DB63
3CBDBA779506706A101CD31B3EE7C9F3A8B77187C9CB7DCA93F2D69E57E55D1A
70CE33FE2733306B1B28507467EB44F4464C9DC83FB0A986EE7FB0133942FEF6
60F3EF44BA41967DF6AD59B6E4E66633BBA95A8DDE5326011B8DE4DFCC48A835
277F6CEDE3277D42CF08DA06EAA5B731C97E9ED889C0CFA6475875A92A75FB1D
C770082AA0760CE8A5B7DEDB06BE748F88E096BE424B38EE38864321C52449D6
EA7DF097DCE5DB9B947EC0716038F29B387E6883F3854321C5842ABC4B2FBDCB
510A23BD1F51B3B2CB3B82A2A01C6ABB85DDED0FFA8E288AF788933F0C8A4204
D45E151AED9DDA31E0AA50BF6019BE24DA94F4D45CFB677A4191756C9C01EAA8
760CF40FB1711CCCB83B0E8FC204D4461FED55D1760BE759C892E8EE9524750D
F677B4361D1581425B79AACE1EED55D14B6EEF7141A170BDAEEE49DB77374317
DABFE250588E3445E2E96780A9D2DACD49927EA55289475A192C062E3B8C00FE
1EC7E657D68EDD050928382E7962602C4491C831D85CD423ACFDC09638B6DA64
449BA8EDD4219F9DAE55A1CD4B27DD7E98F7DFE5FCC5236809A4AAB436586A03
E39F998D4CDB6099A61B9718736A55311B2CD3516BA31DD4D83F9D6183E53B09
B473763155F9092CD862423001114E5B7C3729E43045BC31C237DBE2FBA9344D
56A569BCA256ABC2A553C856BC9DA613AE5E6F6451941CA0A3D016DF9DC6349E
8EA28799FD74DECB5C48B091F02A42ADFF4DC0E967847F537AAF082220E45642
5A9BCC6FF0AE6E3799AB046B4B5CBEA45E77CBF0F962A81638C9B43699BFA685
81796C32D72EFDDBE854B4C53707C73F81D7BD2144EC5940C8681F8C3E73D8E8
5D39BAFBCCA1AE4D40FE33077B3EF1A13C31DF739D1DA1583D4F9C315D6D7C1E
9F395C8FDD8C801FF6AE1CF8EE83DB9D88F882777585AE054434FDB6C00F6DDE
865EAFE68D1CF194385572FE1FDAC0E342B8EA439B69DFB150A24F304BD986B0
D33EC0593040EABFE6532F787E024EA39D3CE1FE2CE145D8C2CF377553ACF363
C33A441F205E1AF15A40C44BE1B6A3C555C6F193F8F559ED820DE7660002FADC
F5596C12420F4226D840996B05FDDC15AE1F84E376B8EEC37672FC4D9FD43582
F4C25EB473B1BFD2E695FA836B445B4CF03EAEF5B2BF6EFFE14B4AB04FFEC9E4
0825E547340927658ACBE7937B82387AAEFD5C672B1688B5BED13007C964DE56
292E9F4F2E15FAD778CE8D0B104C1B7D72F8B85E7A970E6515506D5D7B7BD779
5C1A945540A153C052A2CC02B67748413AA7225056013564999AA3FAF8B4A5B1
B2A0944F969E57BBC2AEA6F368FD03C64711B194FF80B1B4550301B5C538DF19
8A70CF60A5FC17A0030C30C000030C30407F60CC7F00F78619EB88BF352C0000
000049454E44AE426082}
MinImage.PNG = {
89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971
DE000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
053B49444154785EED9B4D8C144514C7ABAA7B267E25EE2A973D68D488170907
3E62B86D88BA5C205122100F4683120CE0858B1F67E062BC48D80535EC49B38A
68E0A6444F1A0EAE07178CF211144D56A3C96E3C60D8E9EEF2FFEF7E833DEB08
3353D5DDBB99F925B5F5EAD5CCBC57AFABBA3EBA570D183060403FA3252F1D6B
D51D482F53D65A8D235D4B2BFA05347E12C932C5B13A2EEAFEA1D150179A01A0
2CEAD231925741DE76657E54198025416501C04DEF6F115BE4B2A9AEEB19352E
22E509119707B8710D2589DA847C85A87A02DF7F80498A3D411FC4972151150B
0D2D2CA8ABC8EDF5EBEA4FE46BA5AA74685B7CB0E253F1419068A7D317131C98
836E9D5497066CAEA7EDBC2FD08D497571C0D08A66D473691EC61F968F140E6C
ADA4CDBC0FF0E90FE45D0FC99E96C230B4165DEE4CBDFE6F978353078340BD21
C5B624C9F6FBF0778BB5FA51E423C847A8D7DACEE256388BFC3CF253C64CFD92
7EE17FC0CAF1006E9CAF4B51C19779F8F23866936951754CCF7B0134781D0C9E
817837CB08CA0E383545398FB5BB6AD6CEED4C12FB52109835A2BE29719C7C6B
8C7E47EBE1F7B43ED610F50D607B076C7F40998DAFD5D413B0FD4D5AD9254E9B
21767B34FC0538F31DD2874856AA18106DEDF6A7E2383A1486C123A2EE8A288A
2F0441F89AD6539FFCF7B7D536A4D5D01F47E32F4955D714B21BE4554F92F9C3
706C97A89C40EF396ACCF0BE76BDC115EF01B0F6D9E124699C44171E15951792
24F9D298FA56ADDF9F139517BC0620BBF2739FF96E7C130CB92F8C19DAE4B327
785B0A735C66DDBE98C6130CA98D08F0DBB4252A67BCFD10A6B8A7318D7D2CC5
42C1F4B91553E549293AE12500ECFA51347F3E0CD54A51150A678730BC77958F
A1E06508709E2FABF184D32A6D4AD1092F01E02247C4D2D05ABF28A213CE4380
CB5B8CFDAB522C15DC0BEEBFD5B2F95678E801C916112AC06E16A1679C03906D
6CAA01DB4067DB6D038079960F2D26795C8D7489298AD40C16227BE423399274
47570DD96E320F7CDC4B5F9B7EB30D6C0BDB241F69A1ED3D003FB21F9B8C37A5
B8980751F793C898929E391B04FA3129960A768D67C3F0C40629F2C2F178ED4A
566A0575FBB1907A4B8A37F0320B2C67DA060057781CBD60125DE922D265A638
56E710C53DF9AB4FB2C38C6AD0DAB4D8A66FF0711F7D6DFACD36B02DA86B7BF2
EC3C0DC6F1B623E85AE943CEB2C1FAE348107CD4E6BED439CE43203BC6AA062C
869C6D7BB80798532254803E2D42CF3807802B319EE149B14CA65D5781C4CB2C
C0034C114B038BA0774574C24B00787ACB2DAA140B87B668538A4E780AC0B106
4F6FA55838D949B19F63312F01203CBAE6E9AD140B0373FA046D49D1198F0150
9647D73CBD159577D0781E8ABE425BA272C6DB996093E5762CEEAD0734A183E8
094FFA1C0EECF6C6DC33E6BBF1C4A907C0313EA57D1E5D7206692ADF35A1F7F4
684CBFAAF5894F17FD7680F41CD243D01FC552FC57A9EA9A9E0380C6AF87F1CF
2176F47054CEF03A7D99629AF3FC4D1E8E72537698F2C282FABD5E57A328FF90
5676494F0180032D4F8609741D3E1EB79BB3931C3D626D769892EDEAEC6CB6B6
D7A73B783C3E8E60EF962283F05BADA646A1FB5154C5812BBD145E9058031FAE
E57D40107E86FE4EF94871C0C852794566E3E2202015FFBE128CE45F92E26B29
55BE24350A1FFEA22F8D86FA1EF96D52552C30C4D7E4C69057FE9A1CFC18115F
EE12D5F2004EEF85D369D7A52CEAFE218AD44C330094455D3ADE57829D8286DF
2E628B5C36950560A950650012C9495E2E95CA021086EA6B11F9EACB5722968E
F7ED70A760DCF3F963BA9CC5B27A02A9BFFE696AC0800103AA47A97F001F21DF
170A8748120000000049454E44AE426082}
Orientation = Horizontal
Position.X = 4.000000000000000000
Position.Y = 72.000000000000000000
Size.Width = 384.000000000000000000
Size.Height = 44.000000000000000000
Size.PlatformDefault = False
OnValueChange = ExposureSliderValueChange
end
end
object loCamera: TLayout
Align = Client
Size.Width = 392.000000000000000000
Size.Height = 544.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
end
object tmrCapture: TTimer
Enabled = False
Interval = 200
OnTimer = tmrCaptureTimer
Left = 184
Top = 320
end
end
Loading