diff --git a/camerakit/src/main/java/com/wonderkiln/camerakit/CameraView.java b/camerakit/src/main/java/com/wonderkiln/camerakit/CameraView.java
index ccc371d5..45c697a7 100644
--- a/camerakit/src/main/java/com/wonderkiln/camerakit/CameraView.java
+++ b/camerakit/src/main/java/com/wonderkiln/camerakit/CameraView.java
@@ -1,6 +1,7 @@
package com.wonderkiln.camerakit;
import android.content.Context;
+import android.content.res.TypedArray;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.IntDef;
@@ -52,6 +53,8 @@ public class CameraView extends FrameLayout {
private int mPictureMode;
+ private boolean mCropOutput;
+
private boolean mAdjustViewBounds;
private CameraListener mCameraListener;
@@ -63,9 +66,39 @@ public class CameraView extends FrameLayout {
super(context, null);
}
+ @SuppressWarnings("all")
public CameraView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
+ if (attrs != null) {
+ TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.CameraView);
+ final int n = a.getIndexCount();
+ for (int i = 0; i < n; ++i) {
+ int attr = a.getIndex(i);
+
+ if (attr == R.styleable.CameraView_ckFacing) {
+ mFacing = a.getInteger(R.styleable.CameraView_ckFacing, 0);
+ }
+
+ if (attr == R.styleable.CameraView_ckFlash) {
+ mFlash = a.getInteger(R.styleable.CameraView_ckFlash, 0);
+ }
+
+ if (attr == R.styleable.CameraView_ckPictureMode) {
+ mPictureMode = a.getInteger(R.styleable.CameraView_ckPictureMode, 0);
+ }
+
+ if (attr == R.styleable.CameraView_ckCropOutput) {
+ mCropOutput = a.getBoolean(R.styleable.CameraView_ckCropOutput, false);
+ }
+
+ if (attr == R.styleable.CameraView_android_adjustViewBounds) {
+ mAdjustViewBounds = a.getBoolean(R.styleable.CameraView_android_adjustViewBounds, false);
+ }
+ }
+ a.recycle();
+ }
+
final PreviewImpl preview = new TextureViewPreview(context, this);
mCameraImpl = new Camera2(context, mCameraListener, preview);
diff --git a/camerakit/src/main/res/values/attrs.xml b/camerakit/src/main/res/values/attrs.xml
index 5770a55b..7328910a 100644
--- a/camerakit/src/main/res/values/attrs.xml
+++ b/camerakit/src/main/res/values/attrs.xml
@@ -3,6 +3,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/build.gradle b/demo/build.gradle
index 4a064069..3954314b 100644
--- a/demo/build.gradle
+++ b/demo/build.gradle
@@ -20,6 +20,8 @@ android {
}
dependencies {
- compile 'com.android.support:appcompat-v7:25.0.1'
compile project(':camerakit')
+ compile 'com.android.support:appcompat-v7:25.0.1'
+ compile 'com.jakewharton:butterknife:8.4.0'
+ annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}
diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml
index c61fb618..8332ae67 100644
--- a/demo/src/main/AndroidManifest.xml
+++ b/demo/src/main/AndroidManifest.xml
@@ -6,7 +6,7 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
+ android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/AppTheme">
diff --git a/demo/src/main/ic_launcher-web.png b/demo/src/main/ic_launcher-web.png
new file mode 100644
index 00000000..d5e90cdf
Binary files /dev/null and b/demo/src/main/ic_launcher-web.png differ
diff --git a/demo/src/main/java/com/wonderkiln/camerakit/demo/MainActivity.java b/demo/src/main/java/com/wonderkiln/camerakit/demo/MainActivity.java
index d56d779b..912bda37 100644
--- a/demo/src/main/java/com/wonderkiln/camerakit/demo/MainActivity.java
+++ b/demo/src/main/java/com/wonderkiln/camerakit/demo/MainActivity.java
@@ -2,20 +2,109 @@ package com.wonderkiln.camerakit.demo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.widget.TextView;
+import android.widget.Toast;
import com.wonderkiln.camerakit.CameraView;
+import com.wonderkiln.camerakit.Constants;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnCheckedChanged;
+import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
- private CameraView camera;
+ @BindView(R.id.activity_main)
+ ViewGroup parent;
+
+ @BindView(R.id.camera)
+ CameraView camera;
+
+ @BindView(R.id.screenWidth)
+ TextView screenWidth;
+
+ @BindView(R.id.screenHeight)
+ TextView screenHeight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+ ButterKnife.bind(this);
+
+ parent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ screenWidth.setText("screen: " + parent.getWidth() + "px");
+ screenHeight.setText("screen: " + parent.getHeight() + "px");
+ }
+ });
- camera = (CameraView) findViewById(R.id.camera);
camera.start();
}
+ @OnClick(R.id.capturePhoto)
+ void capturePhoto() {
+
+ }
+
+ @OnClick(R.id.captureVideo)
+ void captureVideo() {
+
+ }
+
+ @OnClick(R.id.toggleCamera)
+ void toggleCamera() {
+ switch (camera.toggleFacing()) {
+ case Constants.FACING_BACK:
+ Toast.makeText(this, "Switched to back camera!", Toast.LENGTH_SHORT).show();
+ break;
+
+ case Constants.FACING_FRONT:
+ Toast.makeText(this, "Switched to front camera!", Toast.LENGTH_SHORT).show();
+ break;
+ }
+ }
+
+ @OnClick(R.id.toggleFlash)
+ void toggleFlash() {
+ switch (camera.toggleFlash()) {
+ case Constants.FLASH_ON:
+ Toast.makeText(this, "Flash on!", Toast.LENGTH_SHORT).show();
+ break;
+
+ case Constants.FLASH_OFF:
+ Toast.makeText(this, "Flash off!", Toast.LENGTH_SHORT).show();
+ break;
+
+ case Constants.FLASH_AUTO:
+ Toast.makeText(this, "Flash auto!", Toast.LENGTH_SHORT).show();
+ break;
+ }
+ }
+
+ @OnCheckedChanged(R.id.widthWrapContent)
+ void widthWrapContent() {
+
+ }
+
+ @OnCheckedChanged(R.id.widthMatchParent)
+ void widthMatchParent() {
+
+ }
+
+ @OnCheckedChanged(R.id.heightWrapContent)
+ void heightWrapContent() {
+
+ }
+
+ @OnCheckedChanged(R.id.heightMatchParent)
+ void heightMatchParent() {
+
+ }
+
+
}
diff --git a/demo/src/main/res/layout/activity_main.xml b/demo/src/main/res/layout/activity_main.xml
index d243fa69..12331cbc 100644
--- a/demo/src/main/res/layout/activity_main.xml
+++ b/demo/src/main/res/layout/activity_main.xml
@@ -1,5 +1,6 @@
@@ -30,6 +31,7 @@
android:weightSum="4">
@@ -99,6 +104,7 @@
android:textStyle="bold" />
- CameraKit-Android
+ CameraKit Demo