diff --git a/component/scanner/src/main/java/one/nem/lacerta/component/scanner/ScannerScanFragment.java b/component/scanner/src/main/java/one/nem/lacerta/component/scanner/ScannerScanFragment.java
new file mode 100644
index 00000000..54ba513e
--- /dev/null
+++ b/component/scanner/src/main/java/one/nem/lacerta/component/scanner/ScannerScanFragment.java
@@ -0,0 +1,75 @@
+package one.nem.lacerta.component.scanner;
+
+import android.graphics.BitmapFactory;
+import android.os.Bundle;
+
+import androidx.constraintlayout.utils.widget.ImageFilterView;
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.websitebeaver.documentscanner.DocumentScanner;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link ScannerScanFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class ScannerScanFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+// private static final String MAX_SCAN_COUNT = "max_scan_count"; // 規定値
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+
+
+ public ScannerScanFragment() {
+ // Required empty public constructor
+ }
+
+ public static ScannerScanFragment newInstance(String param1) {
+ ScannerScanFragment fragment = new ScannerScanFragment();
+ Bundle args = new Bundle();
+// args.putString(MAX_SCAN_COUNT, param1);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+// mParam1 = getArguments().getString(MAX_SCAN_COUNT);
+// scan(Integer.parseInt(mParam1));
+ }
+ }
+
+
+ public DocumentScanner getDocumentScanner() {
+ return new DocumentScanner(
+ this,
+ (croppedImageResults) -> {
+ // display the first cropped image
+ croppedImageView.setImageBitmap(
+ BitmapFactory.decodeFile(croppedImageResults.get(0))
+ );
+ return null;
+ },
+ (errorMessage) -> {
+ // an error happened
+ return null;
+ },
+ () -> {
+ // user canceled document scan
+ return null;
+ },
+ null,
+ null,
+ null
+ );
+ }
+}
\ No newline at end of file
diff --git a/component/scanner/src/main/java/one/nem/lacerta/component/scanner/ScannerScanResultFragment.java b/component/scanner/src/main/java/one/nem/lacerta/component/scanner/ScannerScanResultFragment.java
new file mode 100644
index 00000000..beffe3d0
--- /dev/null
+++ b/component/scanner/src/main/java/one/nem/lacerta/component/scanner/ScannerScanResultFragment.java
@@ -0,0 +1,64 @@
+package one.nem.lacerta.component.scanner;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link ScannerScanResultFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class ScannerScanResultFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public ScannerScanResultFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment ScannerScanResultFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static ScannerScanResultFragment newInstance(String param1, String param2) {
+ ScannerScanResultFragment fragment = new ScannerScanResultFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_scanner_scan_result, container, false);
+ }
+}
\ No newline at end of file
diff --git a/component/scanner/src/main/res/layout/fragment_scanner_scan.xml b/component/scanner/src/main/res/layout/fragment_scanner_scan.xml
new file mode 100644
index 00000000..cf20c76f
--- /dev/null
+++ b/component/scanner/src/main/res/layout/fragment_scanner_scan.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/component/scanner/src/main/res/layout/fragment_scanner_scan_result.xml b/component/scanner/src/main/res/layout/fragment_scanner_scan_result.xml
new file mode 100644
index 00000000..2ecaf967
--- /dev/null
+++ b/component/scanner/src/main/res/layout/fragment_scanner_scan_result.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file