diff --git a/app/build.gradle b/app/build.gradle index 332d6c90..847f4147 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,4 +23,5 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' + compile 'com.jakewharton:butterknife:7.0.1' } diff --git a/app/src/main/java/com/simplemobiletools/camera/MainActivity.java b/app/src/main/java/com/simplemobiletools/camera/MainActivity.java index f7af2b33..2f08730a 100644 --- a/app/src/main/java/com/simplemobiletools/camera/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/camera/MainActivity.java @@ -4,16 +4,28 @@ import android.hardware.Camera; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; +import android.view.SurfaceHolder; +import android.view.SurfaceView; -public class MainActivity extends AppCompatActivity { +import butterknife.Bind; +import butterknife.ButterKnife; + +public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback { private static final String TAG = MainActivity.class.getSimpleName(); + + @Bind(R.id.surfaceView) SurfaceView surfaceView; private Camera camera; private boolean isOpen; + private SurfaceHolder surfaceHolder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + ButterKnife.bind(this); + + surfaceHolder = surfaceView.getHolder(); + surfaceHolder.addCallback(this); } @Override @@ -34,7 +46,13 @@ public class MainActivity extends AppCompatActivity { try { releaseCamera(); camera = Camera.open(); - isOpen = (camera != null); + + if (camera != null) { + isOpen = true; + camera.setDisplayOrientation(90); + camera.setPreviewDisplay(surfaceHolder); + camera.startPreview(); + } } catch (Exception e) { Log.e(TAG, "openCamera exception " + e.getMessage()); } @@ -46,4 +64,22 @@ public class MainActivity extends AppCompatActivity { camera = null; } } + + @Override + public void surfaceCreated(SurfaceHolder holder) { + surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); + openCamera(); + } + + @Override + public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { + + } + + @Override + public void surfaceDestroyed(SurfaceHolder holder) { + if (camera != null) { + camera.stopPreview(); + } + } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 326b40fa..286eaf79 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -2,10 +2,11 @@ + android:layout_height="match_parent"> + +