Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b40e6e3

Browse files
author
chenyouwei
committed
feat:camera2测试距离
1 parent 404f9f9 commit b40e6e3

18 files changed

+1798
-46
lines changed

‎Android进阶.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
11
# Android进阶
2+
3+
## Camera2 使用
4+
5+
* CameraManager:摄像头管理器。这是一个全新的系统管理器,专门用于检测系统摄像头、打开系统摄像头。除此之外,调用CameraManager的getCameraCharacteristics(String)方法即可获取指定摄像头的相关特性。
6+
* CameraCharacteristics:摄像头特性。该对象通过CameraManager来获取,用于描述特定摄像头所支持的各种特性。
7+
* CameraDevice:代表系统摄像头。该类的功能类似于早期的Camera类。
8+
* CameraCaptureSession:这是一个非常重要的API,当程序需要预览、拍照时,都需要先通过该类的实例创建Session。而且不管预览还是拍照,也都是由该对象的方法进行控制的,其中控制预览的方法为setRepeatingRequest();控制拍照的方法为capture()。
9+
* CameraRequest和CameraRequest.Builder:当程序调用setRepeatingRequest()方法进行预览时,或调用capture()方法进行拍照时,都需要传入CameraRequest参数。CameraRequest代表了一次捕获请求,用于描述捕获图片的各种参数设置,比如对焦模式、曝光模式......总之,程序需要对照片所做的各种控制,都通过CameraRequest参数进行设置。CameraRequest.Builder则负责生成CameraRequest对象。
10+

‎app/src/main/AndroidManifest.xml‎

Lines changed: 49 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
77
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
88
<uses-permission android:name="android.permission.RECORD_AUDIO" />
9+
910
<uses-feature android:name="android.hardware.camera" />
11+
1012
<uses-permission android:name="android.permission.CAMERA" />
1113
<uses-permission android:name="android.hardware.camera.autofocus" />
1214

@@ -21,8 +23,7 @@
2123
<activity
2224
android:name=".MainActivity"
2325
android:configChanges="orientation|screenSize"
24-
android:launchMode="singleTop"
25-
>
26+
android:launchMode="singleTop">
2627
<intent-filter>
2728
<action android:name="android.intent.action.MAIN" />
2829

@@ -31,18 +32,18 @@
3132
</activity>
3233
<!--顺便加上这个服务,tinker自带的-->
3334
<service android:name="com.tencent.tinker.lib.service.DefaultTinkerResultService" />
35+
3436
<activity
3537
android:name=".SecondActivity"
3638
android:configChanges="screenLayout"
3739
android:label="@string/app_name"
3840
android:process=":remote" />
3941
<activity
4042
android:name=".ThirdActivity"
41-
android:configChanges="screenLayout"
42-
/>
43-
<activity android:name=".ReceiveActivity"
44-
android:configChanges="orientation|keyboardHidden"
45-
/>
43+
android:configChanges="screenLayout" />
44+
<activity
45+
android:name=".ReceiveActivity"
46+
android:configChanges="orientation|keyboardHidden" />
4647
<activity
4748
android:name=".animate.AnimationActivity"
4849
android:configChanges="orientation|screenSize"
@@ -51,41 +52,48 @@
5152
android:name=".activities.FragmentActivity"
5253
android:configChanges="orientation|screenSize"
5354
android:launchMode="standard" />
54-
<service android:name=".services.TestOneService"/>
55-
<service android:name=".services.TestTwoService"/>
56-
<activity android:name=".activities.BindServiceActivity"/>
57-
<activity android:name=".activities.ListActivity"/>
58-
<activity android:name=".eventbus.EventActivity1"/>
59-
<activity android:name=".eventbus.EventActivity2"/>
60-
<activity android:name=".ijkplayer.PlayActivity"/>
61-
<activity android:name=".webView.WebViewActivity"/>
62-
<activity android:name=".MediaPlay.MediaPlayActivity"/>
63-
<activity android:name=".videoView.VideoViewActivity"/>
64-
<activity android:name=".retrofit.RetrofitActivity"/>
65-
<activity android:name=".timer.TimerActivity"/>
66-
<activity android:name=".viewpager.ViewPagerActivity"/>
67-
<activity android:name=".activities.ListTimeActivity"/>
68-
<activity android:name=".activities.TestLayoutActivity"/>
69-
<activity android:name=".dialog.DialogShowActivity"/>
70-
<activity android:name=".constraintlayout.ConstraintLayoutActivity"/>
71-
<activity android:name=".rvlooper.LooperActivity"/>
72-
<activity android:name=".footer.HeaderAndFooterActivity"/>
73-
<activity android:name=".activities.TransParentActivity"
74-
android:theme="@style/dialog_activity"
75-
/>
76-
<activity android:name=".leakcanary.LeakActivity"/>
77-
<activity android:name=".exoplayer.ExoPlayerActivity"/>
78-
<activity android:name=".record.RecordActivity"/>
79-
<activity android:name=".highOrderUI.UiActivity"/>
80-
<activity android:name=".hook.HookTestActivity"/>
81-
<activity android:name=".thread.ThreadTestAcitivity"/>
82-
<activity android:name=".puzzleGame.PuzzleActivity"/>
83-
<activity android:name=".animate.AnimatorActivity"/>
84-
<activity android:name=".eyeshield.EyeProtectActivity"/>
85-
<activity android:name=".eysshieldv2.EyeProtectReActivity"
86-
android:screenOrientation="landscape"/>
87-
</application>
8855

56+
<service android:name=".services.TestOneService" />
57+
<service android:name=".services.TestTwoService" />
58+
59+
<activity android:name=".activities.BindServiceActivity" />
60+
<activity android:name=".activities.ListActivity" />
61+
<activity android:name=".eventbus.EventActivity1" />
62+
<activity android:name=".eventbus.EventActivity2" />
63+
<activity android:name=".ijkplayer.PlayActivity" />
64+
<activity android:name=".webView.WebViewActivity" />
65+
<activity android:name=".MediaPlay.MediaPlayActivity" />
66+
<activity android:name=".videoView.VideoViewActivity" />
67+
<activity android:name=".retrofit.RetrofitActivity" />
68+
<activity android:name=".timer.TimerActivity" />
69+
<activity android:name=".viewpager.ViewPagerActivity" />
70+
<activity android:name=".activities.ListTimeActivity" />
71+
<activity android:name=".activities.TestLayoutActivity" />
72+
<activity android:name=".dialog.DialogShowActivity" />
73+
<activity android:name=".constraintlayout.ConstraintLayoutActivity" />
74+
<activity android:name=".rvlooper.LooperActivity" />
75+
<activity android:name=".footer.HeaderAndFooterActivity" />
76+
<activity
77+
android:name=".activities.TransParentActivity"
78+
android:theme="@style/dialog_activity" />
79+
<activity android:name=".leakcanary.LeakActivity" />
80+
<activity android:name=".exoplayer.ExoPlayerActivity" />
81+
<activity android:name=".record.RecordActivity" />
82+
<activity android:name=".highOrderUI.UiActivity" />
83+
<activity android:name=".hook.HookTestActivity" />
84+
<activity android:name=".thread.ThreadTestAcitivity" />
85+
<activity android:name=".puzzleGame.PuzzleActivity" />
86+
<activity android:name=".animate.AnimatorActivity" />
87+
<activity android:name=".eyeshield.EyeProtectActivity" />
88+
<activity
89+
android:name=".eysshieldv2.EyeProtectReActivity"
90+
android:screenOrientation="landscape" />
91+
<activity android:name=".eysshieldv2.testcamera2.TestCamera2" />
92+
<activity
93+
android:name=".camera2face.Camera2FaceActivity"
94+
android:screenOrientation="sensor"
95+
android:theme="@style/Theme.AppCompat.NoActionBar" />
96+
</application>
8997

9098

9199
</manifest>

‎app/src/main/java/com/hugh/basis/MainActivity.java‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@
2727
import com.hugh.basis.activities.TransParentActivity;
2828
import com.hugh.basis.animate.AnimationActivity;
2929
import com.hugh.basis.binder.UserManager;
30+
import com.hugh.basis.camera2face.Camera2FaceActivity;
3031
import com.hugh.basis.constraintlayout.ConstraintLayoutActivity;
3132
import com.hugh.basis.dialog.DialogShowActivity;
3233
import com.hugh.basis.eventbus.EventActivity1;
3334
import com.hugh.basis.exoplayer.ExoPlayerActivity;
3435
import com.hugh.basis.eyeshield.EyeProtectActivity;
3536
import com.hugh.basis.eysshieldv2.EyeProtectReActivity;
37+
import com.hugh.basis.eysshieldv2.testcamera2.TestCamera2;
3638
import com.hugh.basis.footer.HeaderAndFooterActivity;
3739
import com.hugh.basis.highOrderUI.UiActivity;
3840
import com.hugh.basis.hook.HookTestActivity;
@@ -513,6 +515,12 @@ public void onClick(View v) {
513515
startActivity(new Intent(MainActivity.this, EyeProtectReActivity.class));
514516
}
515517
});
518+
findViewById(R.id.tv_go_camera2).setOnClickListener(new View.OnClickListener() {
519+
@Override
520+
public void onClick(View v) {
521+
startActivity(new Intent(MainActivity.this, Camera2FaceActivity.class));
522+
}
523+
});
516524
}
517525

518526
/**
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.hugh.basis.camera2face;
2+
3+
import android.content.Context;
4+
import android.graphics.Canvas;
5+
import android.graphics.Color;
6+
import android.graphics.Paint;
7+
import android.graphics.Rect;
8+
import android.support.annotation.Nullable;
9+
import android.support.v7.widget.AppCompatImageView;
10+
import android.util.AttributeSet;
11+
import android.widget.ImageView;
12+
13+
14+
public class BorderImageView extends ImageView {
15+
public BorderImageView(Context context) {
16+
super(context);
17+
}
18+
19+
public BorderImageView(Context context, @Nullable AttributeSet attrs) {
20+
super(context, attrs);
21+
}
22+
23+
@Override
24+
protected void onDraw(Canvas canvas) {
25+
super.onDraw(canvas);
26+
Paint paint = new Paint();
27+
paint.setStyle(Paint.Style.STROKE);
28+
paint.setStrokeWidth(4);
29+
paint.setColor(Color.RED);
30+
canvas.drawRect(new Rect(0,0,getWidth(),getHeight()),paint);
31+
}
32+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /