From a32004f90cfd20859f9dc906a460a35fc0ac00e3 Mon Sep 17 00:00:00 2001 From: Andrey Pavlenko Date: Fri, 28 Sep 2012 16:12:59 +0400 Subject: [PATCH] adding initial version of a sample with new Camera-View handling design --- samples/android/CMakeLists.txt | 2 + samples/android/camera-preview/.classpath | 8 + samples/android/camera-preview/.project | 33 ++ .../.settings/org.eclipse.jdt.core.prefs | 5 + .../camera-preview/AndroidManifest.xml | 27 ++ samples/android/camera-preview/CMakeLists.txt | 6 + .../res/drawable/ic_action_search.png | Bin 0 -> 3120 bytes .../res/drawable/ic_launcher.png | Bin 0 -> 3014 bytes .../res/layout/activity_camera_writer.xml | 13 + .../res/menu/activity_camera_writer.xml | 6 + .../camera-preview/res/values-v11/styles.xml | 5 + .../camera-preview/res/values/strings.xml | 7 + .../camera-preview/res/values/styles.xml | 5 + .../camerawriter/CameraWriterActivity.java | 72 +++++ .../OpenCvCameraBridgeViewBase.java | 301 ++++++++++++++++++ .../camerawriter/OpenCvNativeCameraView.java | 126 ++++++++ 16 files changed, 616 insertions(+) create mode 100644 samples/android/camera-preview/.classpath create mode 100644 samples/android/camera-preview/.project create mode 100644 samples/android/camera-preview/.settings/org.eclipse.jdt.core.prefs create mode 100644 samples/android/camera-preview/AndroidManifest.xml create mode 100644 samples/android/camera-preview/CMakeLists.txt create mode 100644 samples/android/camera-preview/res/drawable/ic_action_search.png create mode 100644 samples/android/camera-preview/res/drawable/ic_launcher.png create mode 100644 samples/android/camera-preview/res/layout/activity_camera_writer.xml create mode 100644 samples/android/camera-preview/res/menu/activity_camera_writer.xml create mode 100644 samples/android/camera-preview/res/values-v11/styles.xml create mode 100644 samples/android/camera-preview/res/values/strings.xml create mode 100644 samples/android/camera-preview/res/values/styles.xml create mode 100644 samples/android/camera-preview/src/org/opencv/test/camerawriter/CameraWriterActivity.java create mode 100644 samples/android/camera-preview/src/org/opencv/test/camerawriter/OpenCvCameraBridgeViewBase.java create mode 100644 samples/android/camera-preview/src/org/opencv/test/camerawriter/OpenCvNativeCameraView.java diff --git a/samples/android/CMakeLists.txt b/samples/android/CMakeLists.txt index bf96bdf5a..097e02d8c 100644 --- a/samples/android/CMakeLists.txt +++ b/samples/android/CMakeLists.txt @@ -17,6 +17,8 @@ add_subdirectory(tutorial-2-opencvcamera) add_subdirectory(tutorial-3-native) add_subdirectory(tutorial-4-mixed) +add_subdirectory(camera-preview) + #hello-android sample if(HAVE_opencv_highgui) ocv_include_modules_recurse(opencv_highgui opencv_core) diff --git a/samples/android/camera-preview/.classpath b/samples/android/camera-preview/.classpath new file mode 100644 index 000000000..a4763d1ee --- /dev/null +++ b/samples/android/camera-preview/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/samples/android/camera-preview/.project b/samples/android/camera-preview/.project new file mode 100644 index 000000000..d8e9953e8 --- /dev/null +++ b/samples/android/camera-preview/.project @@ -0,0 +1,33 @@ + + + CameraWriter + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/samples/android/camera-preview/.settings/org.eclipse.jdt.core.prefs b/samples/android/camera-preview/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..53e049515 --- /dev/null +++ b/samples/android/camera-preview/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +#Wed Jun 29 04:36:40 MSD 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/samples/android/camera-preview/AndroidManifest.xml b/samples/android/camera-preview/AndroidManifest.xml new file mode 100644 index 000000000..8be9e9485 --- /dev/null +++ b/samples/android/camera-preview/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/android/camera-preview/CMakeLists.txt b/samples/android/camera-preview/CMakeLists.txt new file mode 100644 index 000000000..b04c24a37 --- /dev/null +++ b/samples/android/camera-preview/CMakeLists.txt @@ -0,0 +1,6 @@ +set(sample example-camera-preview) + +add_android_project(${sample} "${CMAKE_CURRENT_SOURCE_DIR}" LIBRARY_DEPS ${OpenCV_BINARY_DIR} SDK_TARGET 11 ${ANDROID_SDK_TARGET}) +if(TARGET ${sample}) + add_dependencies(opencv_android_examples ${sample}) +endif() diff --git a/samples/android/camera-preview/res/drawable/ic_action_search.png b/samples/android/camera-preview/res/drawable/ic_action_search.png new file mode 100644 index 0000000000000000000000000000000000000000..67de12decbd60613f6716de113daae46dc7d6ff9 GIT binary patch literal 3120 zcmb7`_dnZ<7sfwI?Y&32lp3i$Ym-Owisc6jDJBpey zY8RK@E0osA*ZmW|=kdVE<1PlS`5306=f$4T0Rf>xBwN1$m+Tg`p6Luzw)R)BBMJ06bg3*dk%J zJKWkQ%ST|dMD$xTlnocHunjl`&6zF^5}{)?O%y4b=d$i%Gc=?U7%WVrOie|<P69u`2(!9jSoeFE<`DS(?~6?+c)tv9RS6%DF#{qZ;_9ezmY&@*#+l1QJ`Zf z@WJVK%xKY^fL>TCxCGEMqCjJE#BG5>D!^sL-EAGXD+9Plyx5uo(3sQQa01o!h4$R2_@=&;^2~gJz;0de@4FD}8Aa9)*Ck0T2 z11^K2qR)WXT!7Q)5U%y_?Hbl?&=slN1}&VJx?z+ftxNz794;#)Nr3X)=2UgP=9;G` z+Z~$Arx>No@|`pa0EOvXSKpE@o)MU92n5wsEb{}I-A-!qO*gmo%gymhe?0(L4UU|+ zl$LAcM{81}{VqS;I-v4$W+;4elH%FGqSpiz?kvDb{{OKtEP9QbpWocrm^1AKJGu_T zBQBBM5Ag7dN53Pr&QFfNcdUs;Dc+AVraJxJJ$htbd}I6#U98*UR+{m7GXwctaO!3+ z)D4FKajsjl2c#P0y(B3X-%J9(k?OlONq)GtB7H`wv!Vjj`RGuDr^}Sxcc=ViCc%mb z#;=_Kz+o$@>zgDkCE6=ybv%UpQ}@ES@D_mfguV#?0A~X+S=ex+?f@+S7!*c<>huMU zx_G7W)Hk}WFLp7UyQs#3#d^EJtYG?w=o^79QdQAl$@sB4L6D2wH$6dRytP++hCj1x zx7`qpp4_-okuDP|_7pMUp+rvWn`Y@M zCJHvmFkw3r!9(r9Yw8J3MlI=@gMec6d3>9(!rQ0@Ywd50O%Pm}8h@>J z?_ORvMTG=}iL~epdm4uvYj`50S51sP38E;0dwmUB{|Pq9K4~=h*hX|mx;$UmgkLmc zXyKu61C9DyY2n+0aT}P8o(-i9fen#EM|zB#UcjeQ+cim>VINbzP1a52O=^!EMSZ)E zc{WRBMKCs%GzV~X5!R;GI-!h1`AMGoSPVDRtho9^<`lmdkJpKJ?T_FVwxvuV%j~c4 z$&nr7AK5=Bk3txk;<;i55|NU8`Mfl|NWKu>+8px|zNr+x0hqj+!d}jHE=w-T4gtb~ zo^z!S(`TAyif0Od|`R7kT ztvMHhttr|S8T*qwN&f6}P(wA~uXloqT z$X56k3ly~)gmgYGJ;*8Oa7GuHqe_=U+qeJRh>*L0UHJVeJvL@UP&YD)Q4<*nyjp!K z0Vpj&xdGz8){y%>dXQq*OxNty*mT^4*2ih1S4J!^z5AWk#n%1${rW$OQ;Um;n_28y z9OT(p;7X)QG|e^52gXLnK8(%es^n`c%qni@Z|BeEuQab!ee`&CN!!-Cf;QngZ&*#WhWDBBzAIIcRuHQwWYe~&oV#2)yn42- zxj3Za#PuhS&M%$7_vH*VQ5?+c|`Ef;V&A z-N+v^Uuj&oTvK`?871Np;^6VRss4!w{t1O_m5_-=NYIMGAA>A|<$R=qm3pm=sR~G^ zLe@uXL9Io(MYmtp(|&Xsfk8kYncYyA1=XlNe$=sYzE4V6!>lo^hx6pf4c_+;Eh2Ou z#g%fG%d$&rWa*hFTHbm4k3K7?jQi!SLynMJsq~@Ug5AiQaucc(iE|JqkdWn}3CJSs z&EM&5DxqS1O2yKfxLAqu*KOuZ=1ch+1>AX0h5Zz@HQE(o-lV?{09S}uWMGlI$Su#O zBUK)84VQh7Q<~+3GHHf<8(&vlx0j*Ef=hnD93*E!Gz~}(xM$~B(y)3~Wx?&S{n5r@ z;%l{cKi`x0*}K_S-(ZX5&EPVEh^_W2AN2;UfKVd+I@k5v@%N~!w7w)`L4MO#mHY7Q zn#gwXFbm%(=dR)Ct|kiKJqA1a&A5oY#o7J)RtP!!l_u9e@fZOeuB7A|P9je>*NZvH z#b=uW38>-D+{L$_%PV_v563+xJ$JU2WeOabvnsN;vY8(<%`bdrTDkXm|M-_7Q7(H- zlGqx9h2TDRYJF+*C>89= z+ELh9OnXjyoI%eTPjqXNDt1n@&iw9ITlxj;4^U20UeJg#V`p*SrUfUpVK!+qxA%;h z2mb1~#QY4AVNzwXd-bk=P1N5YbYtg)ZskOXNn_#Z%kZjInyJ5@3L*vNe872!c}DrR zd1sDpjxAQBIukRy%VFon#J^bHDQnq>nv!5c-U~a?QyIv^@t2rPOhlyY??o5l2Wkesru*``TwI{XrR*g)LmfPaDK)oMKO+YR2;y3Cle8fbmjnpcB! z^2Hs5wKs)(p6mz|s1cTq+C%^4CeKV4sB15^lfqCZeJ95&+)I&x5*LJ#*7*>LgX%V` zwg*Rg`}*^crG#l+$IHdJpNlVi@F9hyiACcR>bRKk%k<+k7RdFq+_aH+rue;rJ38v> zYr26KJLjd4@rUE$1w5A@E=Ov3xaA^Gr}t(F6FCz_*@xK~oqo@YFLv>Je6_^>?tY<; zp=U}8&PVso_PatBLj-?*Tw$@=crN@xlI-=n{@C_w=~)I}Mh2ORGKX~Tt|UXe%A3OO zCN>rT5Oxay&@lk;n|$Rv0Py50nC`j&fJP1g@Sxs2=rg+7Rk~{qGbI22waNO!`0AW3 z*v8TpVB!~7(z9^z3_`!kD`~`!)^-dPUk%An1AUmuz<%aZLyRzEEaivu#DCh!Q@^@X ztKB{ZZ@sHL$c$ggU5YImWFbd);Z}9R^C(;j9#0H($16IMMD>zHdatq8p3)5-@QG1E zx5M$B#q*umIGEQY@(s~gT6+#< zIKe0D92#%U!6;#2^<8JYNV!}F=HXuiz2lo|V6L8%>=olYV6ea|PC@DmyEZMr#->!= z8dA^ZejO3$41n|w^;_3e+n;L8dqH|ft-Z?Do|FenEG2CRfN{EcHc zhih;x?!mo~ao>^B)YP<$g3Rde@4rLA6L%Z#g$&4o%;8K{Kut}}lNycY00pFWBt@mS zkT07JWYg7d@@DB>@^Y@4Ja@W-%%>fn_>SZMpyy9C>B*fwix63AjDfL+4Ow}4d7O)h6vo1s7+bc)96NSwv`VGg zWHcIe_QX(L$k&vZUleF0ks{O~2eZ$CCypqL4IQA1oVfW;Lqo&LzP>({<5FtuwUD>U zwO%2{v9G2x@pcdY(t|G03Azm_Ge?db32tj^OSf1CE1KWhPhQGV`-B`@{|S|Uwxyrf zphG9<1|5gQ2%kTHenwYUSDn>r9i-eBje5@5`jQ-b`*ifSo|h!(1|6ZRKaF@md3kvh zjZfP6Ty{DoXTG1vu_r0DK`$5@Kv(GO50V0^s;U;#0Ir*loOA6)66I%dY#lSUpsn8- zN!=GOUR>x)k^+j0i(jAvY5B-OZ1b~R&5)2|>xiGe;fa~-NYVm>FGvbFd-m-2>3Z(q zBL}Yh-3z)QCCAqPRH@_i5h4i~fW@mM#mC2wYi(^+@EK&ZJnFF`Wk8Ot3wbu1;RY69 z@)kdVN~JQ*Y&P=_Xr{l`vf{h4AqV}}=Q@eWDxA{+%Z(d1(tyq5Ah4{gYz@tM1P6m* zmJ>O)jyTL&119SJ<2(u`w{PD*rGqwS8Tk53I$06~o9L=C0BpeM_R^}ZuHH`*LBTQQh%wf-28_Te)vJx9 z%w`H1W?TDI(Iabu60Y~SBnTLR6_`cOo}{Ft*&2<;CTM9 zbptc7yNr8|A3y#EHC!%*qV)MdEuAAFC=Gz zUX(x(FatX{a7IvYU0q$Xm`5|1xvvz+dx@cbZ58>H37CN$90+=^goK3oDwRs~b1FP( zkTXFs=kH2-?gs2MiG5DUn+0ZMWNe@=Pqe@fuXf9tpbxHeNg@c?DF^QhMb@LUv$GF( zcXx{xn9-=0H9^&I!jLZ4E1k$f<-7-+F>OAY#7g;pkL7- z(IRmh0Md@i%F3JIf{&mHSFT)X<9o*Cto`#=AMf-=5zS~F@C!K@=k=0%9mc*Jy^`gi z+E`OlqXidy1ch9?cCAP1?hAFlmHb$s5%qgr7kfpOgCBu z^Rfl>ctfwnC*(9yxsK!hoPKvzC=+VH4i3NtFF{pRRXtLSw0+A~2|wBRWnm`=#+wb# zzg{iu9ON9b?ik#b3GCoNh@gq3rKK7vZvLL>N&81m0>?%98glin$t&bs)tboS{J}F8 zfvYEO0ocKT&=L#D$;oMu5-9Rz_}6iJ2((>^WzR3I&`9? zrN!fcx=jP*FBe^xV_`!Q6}_ZFZ6qDku-d{VeBwKfM|3Go8Wm68)0^#wv^5~zF(oo5uy7d-vw4+ z26ks9SFUJ3Y0{*pva+&tp1S+t)PNP3f!$Tn9*;ailarJGT~}8}Ts?Ze9~v+MD=@PZ z!{v6Epp`3EE};>n#T{eaqPK9R&bKSHTt^|x+sg#<%4v)Q`DRW1sMTtx9!=3@<~B}7irlk?bX#$MNuh>w=WzY_#COLcywnc8kf!tt{QwjbumK~mO47GMH4VDx0S>loU@cJ10#Tvk>_ZnkU5t1^EcKhH^3^G=@` z8_5Z<028n=jP7p(rhR-^SXlU;l+Rn294;miUp0|=r`m@fNmS?8b5*3gs+#QEx33kL zfXy54lwtaX&RP80^04)ZeX~-AAxTtM=nUPLZry%Afu(=smDOv* z-b?DAwf7u}$ZQ-QB!L{ND|CkLz`(rLD6hWE!q)24NlV{)|M9h-8fGTtlkgMuRDm`b zlhelO2wkBwbO#28#rtpkFu~I%E?6Er{oNg1Gj^UL&wimGbF*4xM-Fs?ZqO0BLTBji zD{>r3dMqSr$?~ajTiU<(aXOiOu!=-{-7JqKhb2XIflkm3Izm_I>}zuDNqPvm%c#() zQID>B(4Ev>?9`oeP z1&^-yd(PwU#G9ZrJjm?B)g=7*P0z_<0SQryyLkFhIm?8hi0z5=L%yOF< z6T)9wHg(0u!s%~s?tS8Kd&o0ekC7iF<&ilDE|Bn}H6$WKN#!lq# zc69CCyO*S;rJ)8)3JMBHd3iZkcBrkbB}%1|>-ZbTa1PhtTHJ$sAp^1?6SCPDli8So zBZf%}V9Exu={}wIS+qwkTD0hmjT<-a-@JKq?zU~){u3V`-$p@q&`uH(61a}PaSZ2h z4X(vKxEC^*tm#a45F2aw{x2csMS|Hgrzy;U;+Ov+?GX%gH0{r`9?gzLuxn + + + + + diff --git a/samples/android/camera-preview/res/menu/activity_camera_writer.xml b/samples/android/camera-preview/res/menu/activity_camera_writer.xml new file mode 100644 index 000000000..cfc10fd52 --- /dev/null +++ b/samples/android/camera-preview/res/menu/activity_camera_writer.xml @@ -0,0 +1,6 @@ + + + diff --git a/samples/android/camera-preview/res/values-v11/styles.xml b/samples/android/camera-preview/res/values-v11/styles.xml new file mode 100644 index 000000000..d408cbc37 --- /dev/null +++ b/samples/android/camera-preview/res/values-v11/styles.xml @@ -0,0 +1,5 @@ + + +