diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-11-20 08:00:12 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-11-20 08:00:12 +0200 |
| commit | fa8459be63d8f76059d1e71ab86c01e0a13851b5 (patch) | |
| tree | 4d027a75bd2167129f9b6e8f58bd7f75d7243ff0 /Software | |
| parent | a6ef5ba92b4945254ac5697a3ac04b9e335a0f25 (diff) | |
| download | Tango-fa8459be63d8f76059d1e71ab86c01e0a13851b5.tar.gz Tango-fa8459be63d8f76059d1e71ab86c01e0a13851b5.zip | |
Working on mobile app...
Diffstat (limited to 'Software')
11 files changed, 368 insertions, 108 deletions
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java new file mode 100644 index 000000000..2858fbc3c --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java @@ -0,0 +1,63 @@ +package com.twine.colorcapture.core; + +import android.os.AsyncTask; + +public class Task extends AsyncTask<String, Integer, String> { + + private IAction action; + private IAction continueWithAction; + + public Task(IAction action) { + this.action = action; + } + + public Task(IAction action, IAction continueWithAction) { + this.action = action; + this.continueWithAction = continueWithAction; + } + + @Override + protected String doInBackground(String... strings) { + action.invoke(); + return null; + } + + @Override + protected void onPostExecute(String s) { + super.onPostExecute(s); + + if (continueWithAction != null) + { + continueWithAction.invoke(); + } + } + + public void start() + { + execute(""); + } + + public static class TaskBuilder + { + private Task task; + private IAction action; + private IAction continueWithAction; + + public TaskBuilder setAction(IAction action) + { + this.action = action; + return this; + } + + public TaskBuilder setContinueWith(IAction action) + { + this.continueWithAction = action; + return this; + } + + public Task build() + { + return new Task(action,continueWithAction); + } + } +} diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java index d068a2291..4da196dda 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java @@ -1,32 +1,28 @@ package com.twine.colorcapture.views.capture; -import android.Manifest; -import android.content.pm.PackageManager; +import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; import android.graphics.Bitmap; import android.graphics.ImageFormat; import android.hardware.Camera; import android.hardware.Camera.CameraInfo; import android.hardware.Camera.Size; import android.os.Build; -import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; -import android.view.LayoutInflater; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; -import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; +import android.view.ViewTreeObserver; +import android.view.animation.AccelerateDecelerateInterpolator; import android.widget.FrameLayout; import android.widget.ImageView; -import android.widget.Toast; import com.twine.colorcapture.App; import com.twine.colorcapture.R; +import com.twine.colorcapture.core.Task; import com.twine.colorcapture.databinding.FragmentCaptureBinding; import com.twine.colorcapture.mvvm.FragmentBase; import com.twine.colorcapture.opencv.ImageProcessor; @@ -53,50 +49,97 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur private ImageProcessor processor; private Handler mHandler; private SurfaceView surfaceView; - + ObjectAnimator animator; + View scannerLayout; + View scannerBar; + public CaptureFragment() { // Required empty public constructor mHandler = new Handler(Looper.getMainLooper()); processor = new ImageProcessor(); } - + @Override protected void onCreated() { super.onCreated(); - + imagePreview = getView().findViewById(R.id.imagePreview); imagewrappedPreview = getView().findViewById(R.id.imagePreviewWrapped); - + surfaceView = new SurfaceView(this.getActivity()); - + SurfaceHolder camHolder = surfaceView.getHolder(); camHolder.addCallback(this); camHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - + FrameLayout surfraceFrame = (FrameLayout) getView().findViewById(R.id.surfaceViewFrame); - surfraceFrame.addView(surfaceView, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + + startScanAnimation(); + + new Handler().postDelayed(() -> + { + surfraceFrame.addView(surfaceView, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + },500); + } + + private void startScanAnimation() + { + //Scanner overlay + scannerLayout = getView().findViewById(R.id.scannerLayout); + scannerBar = getView().findViewById(R.id.scannerBar); + animator = null; + ViewTreeObserver vto = scannerLayout.getViewTreeObserver(); + vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + + scannerLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this); + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { + scannerLayout.getViewTreeObserver(). + removeGlobalOnLayoutListener(this); + + } else { + scannerLayout.getViewTreeObserver(). + removeOnGlobalLayoutListener(this); + } + + float destination = (float)(scannerLayout.getY() + + scannerLayout.getHeight()); + + animator = ObjectAnimator.ofFloat(scannerBar, "translationY", + scannerLayout.getY(), + destination); + + animator.setRepeatMode(ValueAnimator.REVERSE); + animator.setRepeatCount(ValueAnimator.INFINITE); + animator.setInterpolator(new AccelerateDecelerateInterpolator()); + animator.setDuration(2000); + animator.start(); + + } + }); } - + @Override protected int getLayoutId() { return R.layout.fragment_capture; } - + @Override protected void inject() { App.getComponent().inject(this); } - + @Override public String getTitle() { return "Capture"; } - + @Override public void onPreviewFrame(byte[] data, Camera camera) { @@ -106,11 +149,11 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur if (!bProcessing) { frameData = data; - mHandler.post(DoImageProcessing); + processImage(); } } } - + @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { @@ -125,9 +168,9 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur break; } } - + camera = Camera.open(cameraId); - + try { camera.setPreviewDisplay(surfaceHolder); @@ -139,18 +182,18 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur camera = null; } } - + @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { Camera.Parameters parameters; - + setCameraDisplayOrientation(); - + parameters = camera.getParameters(); - + List<Size> sizes = parameters.getSupportedPreviewSizes(); - + for (Camera.Size size : parameters.getSupportedPreviewSizes()) { if (size.width >= 1200 & size.width <= 1280) @@ -160,30 +203,30 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur break; } } - + int width = parameters.getPreviewSize().width; int height = parameters.getPreviewSize().height; - + imageFormat = parameters.getPreviewFormat(); - + parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); - + camera.setParameters(parameters); - + parameters = camera.getParameters(); - + previewWidth = parameters.getPreviewSize().width; previewHeight = parameters.getPreviewSize().height; - + bitmap = Bitmap.createBitmap(previewHeight, previewWidth, Bitmap.Config.ARGB_8888); wrappedBitmap = Bitmap.createBitmap(300, 330, Bitmap.Config.ARGB_8888); - + pixels = new int[previewWidth * previewHeight]; wrappedPixels = new int[330 * 300]; - + camera.startPreview(); } - + @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { @@ -192,7 +235,7 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur camera.release(); camera = null; } - + private void setCameraDisplayOrientation() { android.hardware.Camera.CameraInfo info = @@ -215,7 +258,7 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur degrees = 270; break; } - + int result; if (info.facing == CameraInfo.CAMERA_FACING_FRONT) { @@ -227,23 +270,26 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur result = (info.orientation - degrees + 360) % 360; } camera.setDisplayOrientation(result); - + } - - private Runnable DoImageProcessing = new Runnable() + + private void processImage() { - public void run() - { - bProcessing = true; - processor.ProcessImage(previewWidth, previewHeight, frameData, pixels, wrappedPixels); - - bitmap.setPixels(pixels, 0, previewHeight, 0, 0, previewHeight, previewWidth); - imagePreview.setImageBitmap(bitmap); - - wrappedBitmap.setPixels(wrappedPixels, 0, 300, 0, 0, 300, 330); - imagewrappedPreview.setImageBitmap(wrappedBitmap); - - bProcessing = false; - } - }; + new Task.TaskBuilder() + .setAction(() -> + { + bProcessing = true; + processor.ProcessImage(previewWidth, previewHeight, frameData, pixels, wrappedPixels); + bitmap.setPixels(pixels, 0, previewHeight, 0, 0, previewHeight, previewWidth); + wrappedBitmap.setPixels(wrappedPixels, 0, 300, 0, 0, 300, 330); + }) + .setContinueWith(() -> + { + imagePreview.setImageBitmap(bitmap); + imagewrappedPreview.setImageBitmap(wrappedBitmap); + bProcessing = false; + }) + .build() + .start(); + } }
\ No newline at end of file diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java index fd80e792a..49b8c07f9 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java @@ -1,8 +1,10 @@ package com.twine.colorcapture.views.loading; +import android.os.CountDownTimer; import android.os.Handler; import com.squareup.otto.Bus; +import com.twine.colorcapture.mvvm.DependencyProperty; import com.twine.colorcapture.mvvm.ViewModelBase; import com.twine.colorcapture.navigation.INavigationProvider; import com.twine.colorcapture.navigation.NavigationView; @@ -13,25 +15,44 @@ import javax.inject.Inject; public class LoadingFragmentVM extends ViewModelBase<ILoadingFragment> { private INavigationProvider navigationProvider; + public DependencyProperty<Integer> loadingProgress; @Inject public LoadingFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider) { this.navigationProvider = navigationProvider; - + + loadingProgress = new DependencyProperty<>(0); } @Override protected void onViewAttached(ILoadingFragment view) { super.onViewAttached(view); + + new CountDownTimer(2000,50) + { + + @Override + public void onTick(long l) { + + loadingProgress.set(loadingProgress.get() + 50); + } + + @Override + public void onFinish() { + + loadingProgress.set(2000); + navigationProvider.navigateTo(NavigationView.Home, false); + } + }.start(); - new Handler().postDelayed(() -> +/* new Handler().postDelayed(() -> { - navigationProvider.navigateTo(NavigationView.Home, false); + - }, 2000); + }, 2000);*/ } } diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java index 6d8e4d5ca..46d3f1679 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java @@ -21,6 +21,8 @@ import javax.inject.Inject; public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivityVM> implements IMainActivity { + private boolean displayOnboarding = false; + @Inject public INavigationProvider navigationProvider; @@ -36,40 +38,42 @@ public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - - // Example of a call to a native method - //TextView tv = (TextView) findViewById(R.id.sample_text); - //tv.setText(stringFromJNI()); - - PaperOnboardingPage scr1 = new PaperOnboardingPage("Welcome to true color capture", - "All hotels and hostels are sorted by hospitality rating", - Color.parseColor("#678FB4"), R.drawable.hand_fabric, R.drawable.onboarding_pager_round_icon); - PaperOnboardingPage scr2 = new PaperOnboardingPage("Banks", - "We carefully verify all banks before add them into the app", - Color.parseColor("#65B0B4"), R.drawable.hand_phone, R.drawable.onboarding_pager_round_icon); - PaperOnboardingPage scr3 = new PaperOnboardingPage("Stores", - "All local stores are categorized for your convenience", - Color.parseColor("#9B90BC"), R.drawable.take_picture, R.drawable.onboarding_pager_round_icon); - - ArrayList<PaperOnboardingPage> elements = new ArrayList<>(); - elements.add(scr1); - elements.add(scr2); - elements.add(scr3); - - PaperOnboardingFragment onboardingFragment = PaperOnboardingFragment.newInstance(elements); - - onboardingFragment.setOnRightOutListener(() -> - { - - navigationProvider.navigateTo(NavigationView.Loading, false); - - }); - - FragmentTransaction fragmentTransaction = this.getFragmentManager().beginTransaction(); - fragmentTransaction.add(R.id.fragment_container, onboardingFragment); - fragmentTransaction.commit(); - + navigationProvider.registerNavigationActivity(this, R.id.fragment_container, "com.twine.colorcapture.views"); + + if (displayOnboarding) { + PaperOnboardingPage scr1 = new PaperOnboardingPage("Welcome to true color capture", + "All hotels and hostels are sorted by hospitality rating", + Color.parseColor("#678FB4"), R.drawable.hand_fabric, R.drawable.onboarding_pager_round_icon); + PaperOnboardingPage scr2 = new PaperOnboardingPage("Banks", + "We carefully verify all banks before add them into the app", + Color.parseColor("#65B0B4"), R.drawable.hand_phone, R.drawable.onboarding_pager_round_icon); + PaperOnboardingPage scr3 = new PaperOnboardingPage("Stores", + "All local stores are categorized for your convenience", + Color.parseColor("#9B90BC"), R.drawable.take_picture, R.drawable.onboarding_pager_round_icon); + + ArrayList<PaperOnboardingPage> elements = new ArrayList<>(); + elements.add(scr1); + elements.add(scr2); + elements.add(scr3); + + PaperOnboardingFragment onboardingFragment = PaperOnboardingFragment.newInstance(elements); + + onboardingFragment.setOnRightOutListener(() -> + { + + navigationProvider.navigateTo(NavigationView.Loading, false); + + }); + + FragmentTransaction fragmentTransaction = this.getFragmentManager().beginTransaction(); + fragmentTransaction.add(R.id.fragment_container, onboardingFragment); + fragmentTransaction.commit(); + } + else + { + navigationProvider.navigateTo(NavigationView.Loading, false); + } } @Override diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/gradient_progressbar.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/gradient_progressbar.xml new file mode 100644 index 000000000..c60c24357 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/gradient_progressbar.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:id="@android:id/background"> + <shape> + <solid android:color="#FFF" /> + <size + android:height="15dp" + android:width="15dp" /> + <corners android:radius="10dp" /> + </shape> + </item> + <item android:id="@android:id/progress"> + <clip> + <layer-list> + <item> + <color android:color="#00000000" /> + </item> + <item + android:left="2dp" + android:top="2dp" + android:right="2dp" + android:bottom="2dp"> + <shape> + <gradient + android:angle="45" + android:startColor="#00b2ff" + android:endColor="#b7ff00" + android:type="linear" /> + <corners android:radius="10dp" /> + </shape> + </item> + </layer-list> + </clip> + </item> +</layer-list>
\ No newline at end of file diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/ic_viewfinder.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/ic_viewfinder.xml new file mode 100644 index 000000000..b4e83acad --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/ic_viewfinder.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector android:height="24dp" android:viewportHeight="75.6" + android:viewportWidth="75.6" android:width="24dp" + xmlns:android="http://schemas.android.com/apk/res/android"> + + <path android:fillColor="#AAFFFFFF" + android:pathData="M1,17.8l-1,0l0,-17.8l17.8,0l0,1l-16.8,0z"/> + <path android:fillColor="#AAFFFFFF" + android:pathData="M57.8,1l0,-1l17.8,0l0,17.8l-1,0l0,-16.8z"/> + <path android:fillColor="#AAFFFFFF" + android:pathData="M74.6,57.8l1,0l0,17.8l-17.8,0l0,-1l16.8,0z"/> + <path android:fillColor="#AAFFFFFF" + android:pathData="M17.8,74.6l0,1l-17.8,0l0,-17.8l1,0l0,16.8z"/> +</vector>
\ No newline at end of file diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/loading_background_brush.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/loading_background_brush.xml new file mode 100644 index 000000000..ede18b1f8 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/loading_background_brush.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item> + <shape> + <gradient + android:angle="45" + android:startColor="#212121" + android:endColor="#313131" + android:type="linear" /> + </shape> + </item> +</selector>
\ No newline at end of file diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/viewfinder.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/viewfinder.png Binary files differnew file mode 100644 index 000000000..82127eac9 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/viewfinder.png diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml index f8725175a..7f8e470d0 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml @@ -30,7 +30,8 @@ android:id="@+id/imagePreview" android:layout_width="match_parent" android:layout_height="match_parent" - android:scaleType="centerCrop" /> + android:scaleType="centerCrop" + android:visibility="gone" /> <ImageView android:id="@+id/imagePreviewWrapped" @@ -42,5 +43,68 @@ android:layout_marginBottom="28dp" app:srcCompat="@android:color/black" /> </RelativeLayout> + + <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <View + android:layout_width="match_parent" + android:layout_height="100dp" + android:background="#9A000000" /> + + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1"> + + <View + android:id="@+id/left" + android:layout_width="40dp" + android:layout_height="match_parent" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" + android:background="#9A000000" /> + + <LinearLayout + android:id="@+id/scannerLayout" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_centerInParent="true" + android:layout_toEndOf="@+id/left" + android:layout_toLeftOf="@id/right" + android:layout_toRightOf="@id/left" + android:layout_toStartOf="@+id/right" + android:background="@drawable/ic_viewfinder" + android:orientation="horizontal"> + + <View + android:id="@+id/scannerBar" + android:layout_width="match_parent" + android:layout_height="5dp" + android:background="@color/colorPrimary" /> + + + </LinearLayout> + + + <View + android:id="@+id/right" + android:layout_width="40dp" + android:layout_height="match_parent" + android:layout_alignParentEnd="true" + android:layout_alignParentRight="true" + android:background="#9A000000" /> + + </RelativeLayout> + + <View + android:layout_width="match_parent" + android:layout_height="100dp" + android:background="#9A000000" /> + + </LinearLayout> </FrameLayout> </layout> diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml index 0c914ce96..21fbf6485 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml @@ -11,6 +11,7 @@ </data> <FrameLayout + android:background="#000000" android:layout_width="match_parent" android:layout_height="match_parent"> @@ -19,7 +20,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitXY" - bind:srcCompat="@drawable/loading_background" /> + bind:srcCompat="@drawable/loading_background_brush" /> <RelativeLayout android:layout_width="match_parent" @@ -36,22 +37,20 @@ android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" - android:text="True Color Capture" - android:textColor="@android:color/black" - android:textSize="30sp" /> + android:text="Loading..." + android:textSize="21sp" /> <ProgressBar android:id="@+id/progressBar" - style="?android:attr/progressBarStyle" - android:layout_width="wrap_content" - android:layout_height="wrap_content" + style="@android:style/Widget.ProgressBar.Horizontal" + android:layout_width="301dp" + android:layout_height="22dp" android:layout_below="@+id/textView" - android:layout_alignParentBottom="true" + android:layout_marginTop="15dp" android:layout_centerHorizontal="true" - android:layout_marginTop="41dp" - android:layout_marginBottom="171dp" - android:indeterminate="true" - android:indeterminateTint="@android:color/black" /> + android:max="2000" + android:progress="@{vm.loadingProgress}" + android:progressDrawable="@drawable/gradient_progressbar" /> </RelativeLayout> </FrameLayout> diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml index 557a55831..743fe092c 100644 --- a/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml @@ -5,6 +5,8 @@ <!--<item name="colorPrimary">@color/colorPrimary</item>--> <!--<item name="colorPrimaryDark">@color/colorPrimaryDark</item>--> <!--<item name="colorAccent">@color/colorAccent</item>--> + + </style> </resources> |
