diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index c0fdbec..dd96e30 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,5 +1,6 @@
\ No newline at end of file
diff --git a/library/src/main/java/me/panavtec/drawableview/DrawableView.java b/library/src/main/java/me/panavtec/drawableview/DrawableView.java
index 1ffe79d..970152b 100644
--- a/library/src/main/java/me/panavtec/drawableview/DrawableView.java
+++ b/library/src/main/java/me/panavtec/drawableview/DrawableView.java
@@ -2,12 +2,15 @@
import android.annotation.TargetApi;
import android.content.Context;
+import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.RectF;
import android.os.Build;
import android.os.Parcelable;
import android.util.AttributeSet;
+import android.util.DisplayMetrics;
+import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
@@ -49,17 +52,20 @@ public DrawableView(Context context) {
public DrawableView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
+ setAttributeSet(context, attrs);
}
public DrawableView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
+ setAttributeSet(context, attrs);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP) public DrawableView(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
+ setAttributeSet(context, attrs);
}
private void init() {
@@ -74,6 +80,33 @@ private void init() {
setOnTouchListener(this);
}
+ private void setAttributeSet(Context context, AttributeSet attributeSet){
+
+ TypedArray a = context.getTheme().obtainStyledAttributes(
+ attributeSet,
+ R.styleable.DrawableView,
+ 0, 0);
+
+ try {
+ DisplayMetrics metrics = context.getResources().getDisplayMetrics();
+ int windowWidth = metrics.widthPixels;
+ int windowHeight = metrics.heightPixels;
+
+ DrawableViewConfig config = new DrawableViewConfig();
+ config.setCanvasHeight(a.getDimensionPixelSize(R.styleable.DrawableView_canvasHeight, windowHeight));
+ config.setCanvasWidth(a.getDimensionPixelSize(R.styleable.DrawableView_canvasWidth, windowWidth));
+ config.setStrokeColor(a.getColor(R.styleable.DrawableView_strokeColor, context.getResources().getColor(android.R.color.black)));
+ config.setShowCanvasBounds(a.getBoolean(R.styleable.DrawableView_showCanvasBounds, true));
+ config.setMinZoom(a.getFloat(R.styleable.DrawableView_minZoom, 1.0f));
+ config.setMaxZoom(a.getFloat(R.styleable.DrawableView_maxZoom, 3.0f));
+ config.setStrokeWidth(a.getFloat(R.styleable.DrawableView_strokeWidth, 20f));
+ setConfig(config);
+
+ } finally {
+ a.recycle();
+ }
+ }
+
public void setConfig(DrawableViewConfig config) {
if (config == null) {
throw new IllegalArgumentException("Paint configuration cannot be null");
diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml
new file mode 100644
index 0000000..6c219a9
--- /dev/null
+++ b/library/src/main/res/values/attrs.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file