촬영한 사진 출력

This commit is contained in:
DESKTOP-1A3P75F\lee
2022-09-15 22:50:56 +09:00
parent c74de85bcb
commit 0ea76c6ce9
92 changed files with 878 additions and 107 deletions

2
.idea/misc.xml generated
View File

@@ -119,7 +119,9 @@
<entry key="..\:/QTagger/a/QTagger_Android7/app/src/main/res/layout/fragment_list.xml" value="0.31302083333333336" />
<entry key="..\:/QTagger/a/QTagger_Android7/app/src/main/res/layout/fragment_photograph.xml" value="0.39739583333333334" />
<entry key="..\:/QTagger/a/QTagger_Android7/app/src/main/res/layout/fragment_weight2.xml" value="0.39739583333333334" />
<entry key="..\:/QTagger/a/QTagger_Android8/app/src/main/res/drawable/button_camera_shot_background.xml" value="0.4045" />
<entry key="..\:/QTagger/a/QTagger_Android8/app/src/main/res/drawable/button_list_background.xml" value="0.397" />
<entry key="..\:/QTagger/a/QTagger_Android8/app/src/main/res/drawable/button_round.xml" value="0.4045" />
<entry key="..\:/QTagger/a/QTagger_Android8/app/src/main/res/drawable/image_squrebutton_background.xml" value="0.397" />
<entry key="..\:/QTagger/a/QTagger_Android8/app/src/main/res/drawable/squrebutton_background.xml" value="0.397" />
<entry key="..\:/QTagger/a/QTagger_Android8/app/src/main/res/layout/activity_camera.xml" value="0.40625" />

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,2 @@
# C/C++ build system timings

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 27ms
create_cxx_tasks completed in 29ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 23ms
create_cxx_tasks completed in 24ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 16ms
create_cxx_tasks completed in 17ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 21ms
create_cxx_tasks completed in 22ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 19ms
create_cxx_tasks completed in 20ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 15ms
create_cxx_tasks completed in 15ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 15ms
create_cxx_tasks completed in 16ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 17ms
create_cxx_tasks completed in 17ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 14ms
create_cxx_tasks completed in 15ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 14ms
create_cxx_tasks completed in 14ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 15ms
create_cxx_tasks completed in 16ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 23ms
create_cxx_tasks completed in 24ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 20ms
create_cxx_tasks completed in 21ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 17ms
create_cxx_tasks completed in 18ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 21ms
create_cxx_tasks completed in 22ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 21ms
create_cxx_tasks completed in 22ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 22ms
create_cxx_tasks completed in 22ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 17ms
create_cxx_tasks completed in 18ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 29ms
create_cxx_tasks completed in 30ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 26ms
create_cxx_tasks completed in 27ms

View File

@@ -3,3 +3,8 @@ create_cxx_tasks
create-initial-cxx-model 28ms
create_cxx_tasks completed in 29ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 41ms
create_cxx_tasks completed in 42ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 21ms
create_cxx_tasks completed in 22ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 18ms
create_cxx_tasks completed in 19ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 25ms
create_cxx_tasks completed in 26ms

View File

@@ -0,0 +1,15 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 25ms
create_cxx_tasks completed in 25ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 19ms
create_cxx_tasks completed in 20ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 18ms
create_cxx_tasks completed in 18ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 19ms
create_cxx_tasks completed in 20ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 17ms
create_cxx_tasks completed in 18ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 17ms
create_cxx_tasks completed in 17ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 21ms
create_cxx_tasks completed in 21ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 16ms
create_cxx_tasks completed in 17ms

View File

@@ -0,0 +1,10 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 23ms
create_cxx_tasks completed in 24ms
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 24ms
create_cxx_tasks completed in 24ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 18ms
create_cxx_tasks completed in 19ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 15ms
create_cxx_tasks completed in 15ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 31ms
create_cxx_tasks completed in 32ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 16ms
create_cxx_tasks completed in 16ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 16ms
create_cxx_tasks completed in 17ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 18ms
create_cxx_tasks completed in 18ms

View File

@@ -0,0 +1,5 @@
# C/C++ build system timings
create_cxx_tasks
create-initial-cxx-model 21ms
create_cxx_tasks completed in 22ms

View File

@@ -1,8 +1,10 @@
package com.qtagger.Activity;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
@@ -13,33 +15,62 @@ import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.hardware.Camera;
import android.os.Build;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.qtagger.CustomPalette.CameraSurfaceView;
import com.qtagger.Data.TestEnum;
import com.qtagger.Database.ImageFile;
import com.qtagger.R;
import com.qtagger.util.CommonHelper;
import com.qtagger.util.DataManager;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collector;
import java.util.stream.Collectors;
public class CameraActivity extends AppCompatActivity {
ImageView imageView;
CameraSurfaceView surfaceView;
RelativeLayout pictureLayout;
LinearLayout saveLayout;
String dbTestType;
public boolean previewing = false;;
DataManager dataManager = DataManager.getInstance();
Bitmap resultBitmap;
String filename, time,pkgData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
Intent intent = getIntent();
dbTestType = intent.getStringExtra("TestType");
if(dbTestType == null)
{
dbTestType ="";
}
pkgData = "";
imageView = findViewById(R.id.imageView);
surfaceView = findViewById(R.id.surfaceView);
pictureLayout = findViewById(R.id.layout_picture);
saveLayout = findViewById(R.id.layout_saveChecker);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@@ -49,6 +80,53 @@ public class CameraActivity extends AppCompatActivity {
}
});
findViewById(R.id.button_camera_retry).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewToggle();
}
});
findViewById(R.id.button_PictureSave).setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View v) {
if(resultBitmap != null) {
//파일 저장 및 DB입력 및 종료
saveBitmap(resultBitmap, filename);
if(dbTestType != null && time != null)
{
String FileName = dataManager.testEnum.name()+"_" + dataManager.selPkg.getPKG_NO() + "_";
if(dbTestType.contains("Surface")) {
FileName += "표면방사선량" + dbTestType.replace("Surface","");
}
else if(dbTestType.contains("M1")){
FileName += "1m방사선량" + dbTestType.replace("M1","");
}
else
{
FileName += "일반사진";
}
FileName += "_"+time + ".jpg";
dataManager.dbHelper.insertFile(
new ImageFile(dataManager.selPkg.getPKG_NO(),
dataManager.testEnum.label(),
dbTestType,
time,
pkgData,
dataManager.loginAccount.getAccountId(),
CommonHelper.DefaultImageFolderPath+filename,FileName));
}
finish();
}
}
});
}
private void viewToggle(){
@@ -56,17 +134,22 @@ public class CameraActivity extends AppCompatActivity {
{
imageView.setVisibility(View.VISIBLE);
surfaceView.setVisibility(View.GONE);
pictureLayout.setVisibility(View.GONE);
saveLayout.setVisibility(View.VISIBLE);
}
else
{
imageView.setVisibility(View.GONE);
surfaceView.setVisibility(View.VISIBLE);
pictureLayout.setVisibility(View.VISIBLE);
saveLayout.setVisibility(View.GONE);
}
}
public void capture(){
surfaceView.capture(new Camera.PictureCallback() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onPictureTaken(byte[] data, Camera camera) {
//bytearray 형식으로 전달
@@ -74,6 +157,9 @@ public class CameraActivity extends AppCompatActivity {
BitmapFactory.Options options = new BitmapFactory.Options();
//options.inSampleSize = 8; // 1/8사이즈로 보여주기
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); //data 어레이 안에 있는 데이터 불러와서 비트맵에 저장
Date currentTime = Calendar.getInstance().getTime();
time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefault()).format(currentTime);
filename = time+ ".jpg";
int width = bitmap.getWidth();
@@ -86,36 +172,57 @@ public class CameraActivity extends AppCompatActivity {
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
//matrix.postScale(scaleWidth, scaleHeight);
matrix.postRotate(90);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0,0,width,height,matrix,true);
Date currentTime = Calendar.getInstance().getTime();
String time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefault()).format(currentTime);
Canvas cs = new Canvas(resizedBitmap);
Paint tPaint = new Paint();
tPaint.setTextSize(10);
tPaint.setTextSize(20);
tPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
tPaint.setColor(Color.BLACK);
tPaint.setStyle(Paint.Style.FILL);
cs.drawText("TOP - FRONT",10f,20f,tPaint);
cs.drawText(time,10f,10+20f,tPaint);
cs.drawText("K042022B000009",10f,20+20f,tPaint);
cs.drawText(dbTestType,10f,20f,tPaint);
cs.drawText(time,10f,20+20f,tPaint);
cs.drawText("K042022B000009",10f,40+20f,tPaint);
//CommonHelper.DefaultImageFolderPath
BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
imageView.setImageDrawable(new BitmapDrawable(resizedBitmap));//이미지뷰에 사진 보여주기
resultBitmap = resizedBitmap;
camera.startPreview();
viewToggle();
}
});
}
//viewToggle();
public void saveBitmap(Bitmap bmp, String fileName){
FileOutputStream out;
try {
File tempFile = new File(CommonHelper.DefaultImageFolderPath, fileName);
// 자동으로 빈 파일을 생성합니다.
tempFile.createNewFile();
// 파일을 쓸 수 있는 스트림을 준비합니다.
out = new FileOutputStream(tempFile);
// compress 함수를 사용해 스트림에 비트맵을 저장합니다.
bmp.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

View File

@@ -1,6 +1,12 @@
package com.qtagger.Activity.Test;
import static com.qtagger.Database.TestType.Top_Front;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Build;
import android.os.Bundle;
@@ -13,54 +19,35 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import com.qtagger.Activity.AccountList;
import com.qtagger.Activity.CameraActivity;
import com.qtagger.Data.CaptureFragmentEnum;
import com.qtagger.Database.ImageFile;
import com.qtagger.Database.TestType;
import com.qtagger.R;
import com.qtagger.util.DataManager;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
* Use the {@link CaptureFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class CaptureFragment extends Fragment {
DataManager dataManager = DataManager.getInstance();
private Context context;
// 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";
private CaptureFragmentEnum Type;
Button btnTopFront,btnTopBack,btnTopLeft,btnTopRight;
Button btnMiddleFront,btnMiddleBack,btnMiddleLeft,btnMiddleRight;
Button btnBottomFront,btnBottomBack,btnBottomLeft,btnBottomRight;
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public CaptureFragment() {
public CaptureFragment(CaptureFragmentEnum type) {
// 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 CaptureFragment.
*/
// TODO: Rename and change types and number of parameters
public static CaptureFragment newInstance(String param1, String param2) {
CaptureFragment fragment = new CaptureFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
Type = type;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
@@ -69,21 +56,178 @@ public class CaptureFragment extends Fragment {
context = container.getContext();
View view = inflater.inflate(R.layout.fragment_capture, container, false);
/*
Button topFront = view.findViewById(R.id.button_top_front);
topFront.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.M)
btnTopFront = view.findViewById(R.id.button_top_front);
btnTopBack = view.findViewById(R.id.button_top_back);
btnTopLeft = view.findViewById(R.id.button_top_left);
btnTopRight = view.findViewById(R.id.button_top_right);
btnMiddleFront = view.findViewById(R.id.button_middle_front);
btnMiddleBack = view.findViewById(R.id.button_middle_back);
btnMiddleLeft = view.findViewById(R.id.button_middle_left);
btnMiddleRight = view.findViewById(R.id.button_middle_right);
btnBottomFront = view.findViewById(R.id.button_bottom_front);
btnBottomBack = view.findViewById(R.id.button_bottom_back);
btnBottomLeft = view.findViewById(R.id.button_bottom_left);
btnBottomRight = view.findViewById(R.id.button_bottom_right);
btnTopFront.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
topFront.setBackgroundResource(R.drawable.capture_test_image2);
topFront.setForeground(null);
Toast.makeText(context, "이미지 교체", Toast.LENGTH_SHORT).show();
cameraActivityOpen(Type.getTestType(Top_Front));
}
});*/
//button_top_front
// Inflate the layout for this fragment
});
btnTopBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Top_Back));
}
});
btnTopLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Top_Left));
}
});
btnTopRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Top_Right));
}
});
btnMiddleFront.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Middle_Front));
}
});
btnMiddleBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Middle_Back));
}
});
btnMiddleLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Middle_Left));
}
});
btnMiddleRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Middle_Right));
}
});
btnBottomFront.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Bottom_Front));
}
});
btnBottomBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Bottom_Back));
}
});
btnBottomLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Bottom_Left));
}
});
btnBottomRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraActivityOpen(Type.getTestType(TestType.Bottom_Right));
}
});
return view;
}
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onStart() {
super.onStart();
List<ImageFile> files = dataManager.dbHelper.selectFiles(dataManager.selPkg.getPKG_NO(),dataManager.testEnum.label());
for(ImageFile file : files)
{
if(file.getType().contains(Type.name()))
{
TestType dbType =TestType.getByName(file.getType().replace(Type.name(),""));
Button selButton = getTestTypeButton(dbType);
if(selButton != null)
{
selButton.setBackground(new BitmapDrawable(BitmapFactory.decodeFile(file.getFilePath())));
selButton.setForeground(null);
}
}
}
}
public Button getTestTypeButton(TestType type){
switch (type)
{
case Top_Front:
return btnTopFront;
case Top_Back:
return btnTopBack;
case Top_Left:
return btnTopLeft;
case Top_Right:
return btnTopRight;
case Middle_Front:
return btnMiddleFront;
case Middle_Back:
return btnMiddleBack;
case Middle_Left:
return btnMiddleLeft;
case Middle_Right:
return btnMiddleRight;
case Bottom_Front:
return btnBottomFront;
case Bottom_Back:
return btnBottomBack;
case Bottom_Left:
return btnBottomLeft;
case Bottom_Right:
return btnBottomRight;
}
return null;
}
private void cameraActivityOpen(String testType)
{
Intent cameraIntent = new Intent(getActivity().getApplicationContext(), CameraActivity.class);
cameraIntent.putExtra("TestType",testType);
startActivity(cameraIntent);
}
}

View File

@@ -15,9 +15,15 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.qtagger.Database.ImageFile;
import com.qtagger.R;
import com.qtagger.util.DataManager;
import com.qtagger.util.ImageSliderAdapter;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
* Use the {@link InfoFragment#newInstance} factory method to
@@ -25,19 +31,12 @@ import com.qtagger.util.ImageSliderAdapter;
*/
public class InfoFragment extends Fragment {
DataManager dataManager = DataManager.getInstance();
private ViewPager2 sliderViewPager;
private ImageSliderAdapter imageSliderAdapter;
private LinearLayout layoutIndicator;
private TextView textPictureInfo;
private String[] images = new String[] {
"https://cdn.pixabay.com/photo/2019/12/26/10/44/horse-4720178_1280.jpg",
"https://cdn.pixabay.com/photo/2020/11/04/15/29/coffee-beans-5712780_1280.jpg",
"https://cdn.pixabay.com/photo/2020/03/08/21/41/landscape-4913841_1280.jpg",
"https://cdn.pixabay.com/photo/2020/09/02/18/03/girl-5539094_1280.jpg",
"https://cdn.pixabay.com/photo/2014/03/03/16/15/mosque-279015_1280.jpg",
"/storage/emulated/0/Download/check1.jpg"
};
ImageView[] indicators = null;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -90,26 +89,59 @@ public class InfoFragment extends Fragment {
layoutIndicator = view.findViewById(R.id.layoutIndicators);
textPictureInfo= view.findViewById(R.id.text_picture_info);
imageSliderAdapter = new ImageSliderAdapter(context, null);
sliderViewPager.setOffscreenPageLimit(1);
sliderViewPager.setAdapter(new ImageSliderAdapter(context, images));
sliderViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
setCurrentIndicator(position);
textPictureInfo.setText(images[position]);
}
});
setupIndicators(images.length);
sliderViewPager.setAdapter(imageSliderAdapter);
// Inflate the layout for this fragment
return view;
}
@Override
public void onStart() {
super.onStart();
textPictureInfo.setText("");
imageSliderAdapter.clear();
List<ImageFile> files = dataManager.dbHelper.selectFiles(dataManager.selPkg.getPKG_NO(),dataManager.testEnum.label());
List<ImageFile> filePaths = new ArrayList<>();
for(ImageFile file : files)
{
if(file.getFilePath() != null)
{
File f = new File(file.getFilePath());
if(f.exists())
{
filePaths.add(file);
imageSliderAdapter.addItem(file.getFilePath());
}
}
}
sliderViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
setCurrentIndicator(position);
textPictureInfo.setText(filePaths.get(position).getFileName());
}
});
setupIndicators(imageSliderAdapter.getItemCount());
}
private void setupIndicators(int count) {
ImageView[] indicators = new ImageView[count];
if(indicators != null)
{
for (int i = 0; i < indicators.length; i++)
{
layoutIndicator.removeView(indicators[i]);
}
}
indicators = new ImageView[count];
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

View File

@@ -14,6 +14,7 @@ import com.qtagger.Activity.Test.FillFragment;
import com.qtagger.Activity.Test.InfoFragment;
import com.qtagger.Activity.Test.PhotographFragment;
import com.qtagger.Activity.Test.WeightFragment;
import com.qtagger.Data.CaptureFragmentEnum;
import com.qtagger.Data.TestEnum;
import com.qtagger.Database.ORIGIN_CHRCT;
import com.qtagger.R;
@@ -29,8 +30,8 @@ public class TestActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test2);
surfaceFragment = new CaptureFragment();
m1Fragment = new CaptureFragment();
surfaceFragment = new CaptureFragment(CaptureFragmentEnum.Surface_);
m1Fragment = new CaptureFragment(CaptureFragmentEnum.M1_);
weightFragment = new WeightFragment();
fillFragment = new FillFragment();
pictureFragment = new PhotographFragment();

View File

@@ -0,0 +1,19 @@
package com.qtagger.Data;
import com.qtagger.Database.TestType;
public enum CaptureFragmentEnum {
Surface_,M1_;
public String getTestType(TestType testType)
{
String result = name();
if(!(testType == TestType.Filling || testType == TestType.Weight))
{
result += testType.name();
}
return result;
}
}

View File

@@ -23,7 +23,7 @@ public class DBHelper extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE if NOT EXISTS Account ( id integer PRIMARY KEY AUTOINCREMENT, accountId TEXT, accountName TEXT, accountDapt TEXT);");
db.execSQL("CREATE TABLE if NOT EXISTS File ( PkgNo TEXT, TestEnum TEXT,Type TEXT,FilePath TEXT,FileName TEXT);");
db.execSQL("CREATE TABLE if NOT EXISTS File ( PkgNo TEXT, TestEnum TEXT,Type TEXT,CreateDate TEXT,PkgData TEXT,UserId TEXT,FilePath TEXT,FileName TEXT);");
db.execSQL("CREATE TABLE if NOT EXISTS ORIGIN_CHRCT (ORIGIN_WASTE_TYPE TEXT , ORIGIN_CHRCT_OCRNC_TIME TEXT , ORIGIN_WASTE TEXT , ORIGIN_CONTAINER_TYPE TEXT , ORIGIN_TOTAL_WEIGHT TEXT , ORIGIN_CHRCT_PGK_AGENCY TEXT , ORIGIN_CHRCT_OCRD TEXT , ORIGIN_CHRCT_Zn_65 TEXT , ORIGIN_CHRCT_Zr_95 TEXT , ORIGIN_PKG_JUDGMENT TEXT , ORIGIN_PKG_SPCL_NOTE TEXT , ORIGIN_PKG_SLFINDATE TEXT , ORIGIN_PKG_INSPECTOR TEXT , ORIGIN_CHRCT_PKG_CHECKER TEXT , ORIGIN_CHRCT_PKG_NOTE TEXT , ORIGIN_PKG_DELIVERYDATE TEXT , ORIGIN_PKG_HARDSOLID TEXT , ORIGIN_PKG_SOFTSOLID TEXT , ORIGIN_CHRCT_PKG_PCP TEXT , ORIGIN_PKG_INTEGRITY TEXT , ORIGIN_PKG_CMPRSSTRNG TEXT , ORIGIN_CHRCT_DSMNT_NO_01 TEXT , ORIGIN_CHRCT_DSMNT_NO_02 TEXT , ORIGIN_CHRCT_DSMNT_NO_03 TEXT , ORIGIN_CHRCT_DSMNT_NO_04 TEXT , ORIGIN_CHRCT_DSMNT_NO_05 TEXT , ORIGIN_CHRCT_DSMNT_NO_06 TEXT , ORIGIN_CHRCT_DSMNT_NO_07 TEXT , ORIGIN_CHRCT_DSMNT_NO_08 TEXT , ORIGIN_CHRCT_DSMNT_NO_09 TEXT , ORIGIN_CHRCT_DSMNT_NO_10 TEXT , ORIGIN_CHRCT_PKG_PKG_DATE TEXT , ORIGIN_PKG_IN_WT TEXT , ORIGIN_PKG_PRCSN_MTHD TEXT , ORIGIN_PKG_CRTCL_SFTY TEXT , ORIGIN_PKG_SRFC_PLTN TEXT , ORIGIN_PKG_SRFC_PLTN_DATE TEXT , ORIGIN_PKG_SRFC_PLTN_MSRRS TEXT , ORIGIN_CHRCT_G_Alpha TEXT , ORIGIN_CHRCT_H_3 TEXT , ORIGIN_CHRCT_C_14 TEXT , ORIGIN_CHRCT_Cr_51 TEXT , ORIGIN_CHRCT_Fe_55 TEXT , ORIGIN_CHRCT_Co_58 TEXT , ORIGIN_CHRCT_Ni_59 TEXT , ORIGIN_CHRCT_Co_60 TEXT , ORIGIN_CHRCT_Ni_63 TEXT , ORIGIN_CHRCT_Sr_90 TEXT , ORIGIN_CHRCT_Nb_94 TEXT , ORIGIN_CHRCT_Tc_99 TEXT , ORIGIN_CHRCT_Ag_110m TEXT , ORIGIN_CHRCT_Sb_125 TEXT , ORIGIN_CHRCT_I_129 TEXT , ORIGIN_CHRCT_Cs_134 TEXT , ORIGIN_CHRCT_Cs_137 TEXT , ORIGIN_CHRCT_Ce_144 TEXT , ORIGIN_CHRCT_Co_57 TEXT , ORIGIN_CHRCT_Fe_59 TEXT , ORIGIN_CHRCT_Mn_54 TEXT , ORIGIN_CHRCT_Nb_95 TEXT , ORIGIN_PKG_SURFC_RD TEXT , ORIGIN_SURFC_RD_MSRMN_DATE TEXT , ORIGIN_PKG_SURFC_RD_MSRRS TEXT , ORIGIN_TOTAL_RDCTV_MBq TEXT , ORIGIN_PKG_NCLD_MSRRS TEXT , ORIGIN_PKG_NCLD_MSRMN_DATE TEXT , ORIGIN_PKG_NCLD_EVLTN_DATE TEXT , ORIGIN_PKG_NCLD_EVLTR TEXT , ORIGIN_PACK_FORM TEXT , ORIGIN_CHRCT_Pu_241 TEXT , ORIGIN_PKG_FILLRATE_P TEXT , ORIGIN_PKG_TOTAL_RDCTV_Bq TEXT , PKG_NO TEXT PRIMARY KEY, ORIGIN_PKG_CRSV TEXT , ORIGIN_PKG_EXPLS TEXT , ORIGIN_PKG_HZRD TEXT , ORIGIN_PKG_IGNTB TEXT , ORIGIN_PKG_FLMBL TEXT , ORIGIN_PKG_GAS_GNRTN TEXT , ORIGIN_PKG_INFCT TEXT , ORIGIN_PKG_PRTCL_MATER TEXT , ORIGIN_PKG_RTNL_NMBR TEXT , ORIGIN_PKG_RTNL_NMBR_P TEXT , ORIGIN_PKG_FILLRATE TEXT , ORIGIN_PKG_SPACE TEXT , ORIGIN_PKG_ETC TEXT , ORIGIN_PKG_EDTA_NTA TEXT , ORIGIN_PKG_CTRC_ACID TEXT );");
db.execSQL("CREATE TABLE if NOT EXISTS PREPAR_TEST (PREPAR_SURFC_RD_RATE TEXT , PREPAR_SURFC_RD_DATE TEXT , PREPAR_TOT_WT TEXT , PREPAR_IN_WT TEXT , PREPAR_SURFC_PLT TEXT , PREPAR_SURFC_PLT_DATE TEXT , PREPAR_TOT_RD_QTY TEXT , PREPAR_NUCLIDE_ANALS_DATE TEXT , PREPAR_NUCLIDE_NAME TEXT , PREPAR_CHECKER TEXT , PREPAR_INSPECTOR_1 TEXT , PREPAR_IS_PASS_REMARK TEXT , PREPAR_MANAGT_DATE TEXT , PREPAR_APPROVAL_DATE TEXT , PREPAR_NOT_PASS_REMARK TEXT , PREPAR_MANAGT_REMARK TEXT , PREPAR_MANAGT_RESULT TEXT , PREPAR_MANER TEXT , PREPAR_APPROVER TEXT , PREPAR_MNG_NUM TEXT , PREPAR_NOT_PASS_DATE TEXT , PREPAR_TEST_PASS TEXT , TEST TEXT , PREPAR_REQ_REMARK TEXT , PREPAR_WASTE_TYPE TEXT , PREPAR_TEST_ROT TEXT , PREPAR_DOC_INSP TEXT , PREPAR_VISUAL_INSP_NOTE TEXT , PREPAR_VISUAL_INSP TEXT , PREPAR_INSP_TYPE TEXT , PREPAR_INSP_MET TEXT , PREPAR_RTNL_NMBR TEXT , PREPAR_FREE_WATER_PER TEXT , PREPAR_APT TEXT , PREPAR_FILL_RATE_PER TEXT , PREPAR_CHELATE TEXT , PREPAR_SLD_STABLE TEXT , PREPAR_HAZA_SUBSTANCES TEXT , PKG_NO TEXT PRIMARY KEY, PREPAR_TEST_TYPE TEXT , PREPAR_NUCLIDE_GROUP TEXT , PREPAR_DS_LIMIT TEXT , PREPAR_SELF_DS_PERM TEXT , PREPAR_NUCLIDE_VAL TEXT , PREPAR_TEST_IS_PASS TEXT , PREPAR_NOT_PASS_TYPE TEXT , PREPAR_TEST_Eu_152 TEXT , PREPAR_TEST_Co_57 TEXT , PREPAR_TEST_Fe_59 TEXT , PREPAR_TEST_Mn_54 TEXT , PREPAR_TEST_Nb_95 TEXT , PREPAR_TEST_Zn_65 TEXT , PREPAR_TEST_Zr_95 TEXT , PREPAR_TEST_Eu_154 TEXT , PREPAR_TEST_Ni_63 TEXT , PREPAR_TEST_DATE TEXT , PREPAR_INSPECTOR_2 TEXT , PREPAR_TEST_Sr_90 TEXT , PREPAR_TEST_Nb_94 TEXT , PREPAR_TEST_Tc_99 TEXT , PREPAR_TEST_Ag_110m TEXT , PREPAR_TEST_Sb_125 TEXT , PREPAR_TEST_I_129 TEXT , PREPAR_TEST_G_Alpha TEXT , PREPAR_TEST_H_3 TEXT , PREPAR_TEST_C_14 TEXT , PREPAR_TEST_Cr_51 TEXT , PREPAR_TEST_Fe_55 TEXT , PREPAR_TEST_Co_58 TEXT , PREPAR_TEST_Ni_59 TEXT , PREPAR_TEST_Co_60 TEXT , PREPAR_TEST_Cs_134 TEXT , PREPAR_TEST_Cs_137 TEXT , PREPAR_TEST_Ce_144 TEXT , PREPAR_DOC_INSP_NOTE TEXT , PREPAR_TEST1234 TEXT , PREPAR_TEST12342 TEXT );");
db.execSQL("CREATE TABLE if NOT EXISTS ACCEPT_TEST (ACCEPT_TEST_TYPE TEXT , ACCEPT_NOT_PASS_TYPE TEXT , ACCEPT_IN_WT TEXT , ACCEPT_SURFC_RD_RATE TEXT , ACCEPT_SURFC_RD_DATE TEXT , ACCEPT_SURFC_PLT TEXT , ACCEPT_SURFC_PLT_DATE TEXT , ACCEPT_TOT_RD_QTY TEXT , ACCEPT_NUCLIDE_ANALS_DATE TEXT , ACCEPT_WASTE_TYPE TEXT , ACCEPT_NOT_PASS_REMARK TEXT , ACCEPT_INSP_MET TEXT , ACCEPT_TYPE_REMARK TEXT , ACCEPT_DOC_INSP TEXT , ACCEPT_DOC_INSP_REMARK TEXT , ACCEPT_VISUAL_INSP TEXT , ACCEPT_VISUAL_INSP_REMARK TEXT , ACCEPT_IS_PASS TEXT , ACCEPT_INSPECTOR TEXT , ACCEPT_CHECKER TEXT , ACCEPT_NOT_PASS_DATE TEXT , ACCEPT_REQ_REMARK TEXT , ACCEPT_MANAGT_REMARK TEXT , ACCEPT_MANER TEXT , ACCEPT_TEST_IS_PASS TEXT , ACCEPT_MANAGT_DATE TEXT , ACCEPT_MANAGT_RESULT TEXT , ACCEPT_APPROVER TEXT , ACCEPT_APPROVAL_DATE TEXT , ACCEPT_RE_TKIN_DATE TEXT , ACCEPT_CHELATE TEXT , ACCEPT_TEST_G_Alpha TEXT , ACCEPT_TEST_H_3 TEXT , ACCEPT_TEST_Cr_51 TEXT , ACCEPT_TEST_Fe_55 TEXT , ACCEPT_TEST_Co_58 TEXT , ACCEPT_TEST_Ni_59 TEXT , ACCEPT_TEST_Ni_63 TEXT , ACCEPT_TEST_Sr_90 TEXT , ACCEPT_TEST_Nb_94 TEXT , ACCEPT_APT TEXT , ACCEPT_APT_PER TEXT , ACCEPT_PASS_NOTE TEXT , ACCEPT_ROT TEXT , PKG_NO TEXT PRIMARY KEY, ACCEPT_TEST_TOT_WT TEXT , ACCEPT_RTNL_NMBR TEXT , ACCEPT_RTNL_NMBR_PER TEXT , ACCEPT_SLD_STABLE TEXT , ACCEPT_NXS_SBSTN TEXT , ACCEPT_TEST_DATE TEXT , ACCEPT_TEST_Tc_99 TEXT , ACCEPT_TEST_Ag_110m TEXT , ACCEPT_TEST_Sb_125 TEXT , ACCEPT_TEST_I_129 TEXT , ACCEPT_TEST_Cs_134 TEXT , ACCEPT_TEST_Cs_137 TEXT , ACCEPT_TEST_Ce_144 TEXT , ACCEPT_TEST_Eu_152 TEXT , ACCEPT_TEST_Co_57 TEXT , ACCEPT_TEST_Fe_59 TEXT , ACCEPT_TEST_Mn_54 TEXT , ACCEPT_TEST_Nb_95 TEXT , ACCEPT_TEST_Zn_65 TEXT , ACCEPT_TEST_Zr_95 TEXT , ACCEPT_TEST_C_14 TEXT , ACCEPT_TEST_Co_60 TEXT );");
@@ -35,6 +35,9 @@ public class DBHelper extends SQLiteOpenHelper {
}
public List<PKG> getAllORIGIN_CHRCT(){
List<PKG> resultData = new ArrayList<PKG>();
db = getWritableDatabase();
@@ -152,16 +155,17 @@ public class DBHelper extends SQLiteOpenHelper {
public void insertFile(ImageFile f){
db = getWritableDatabase();
db.execSQL("INSERT INTO File (PkhNo,TestEnum,Type,FilePath,FileName) VALUES('"+f.getPkgNo()+"','"+f.getTestEnum()+"','"+f.getType()+"','"+f.getFilePath()+"','"+f.getFileName()+"')");
db.execSQL("Insert or replace into File (PkgNo , TestEnum ,Type ,CreateDate ,PkgData,UserId ,FilePath ,FileName) VALUES('"+f.getPkgNo()+"','"+f.getTestEnum()+"','"+f.getType()+"','"+f.getCreateDate()+"','"+f.getPkgData()+"','"+f.getUserId()+"','"+f.getFilePath()+"','"+f.getFileName()+"')");
db.close();
}
public List<ImageFile> selectFile(String PkgNo, String TestEnum, String Type){
public List<ImageFile> selectFiles(String PkgNo, String TestEnum){
List<ImageFile> resultData = new ArrayList<ImageFile>();
db = getWritableDatabase();
Cursor cs = db.rawQuery("Select * From File Where PkgNo = '"+PkgNo+"' AND TestEnum = '"+TestEnum+"' AND Type = '"+Type+"'",null);
Cursor cs = db.rawQuery("Select * From File Where PkgNo = '"+PkgNo+"' AND TestEnum = '"+TestEnum+"'",null);
while (cs.moveToNext()){
resultData.add(new ImageFile(cs.getString(0),cs.getString(1),cs.getString(2),cs.getString(3),cs.getString(4) ));
resultData.add(new ImageFile(cs.getString(0),cs.getString(1),cs.getString(2),cs.getString(3),cs.getString(4)
,cs.getString(5),cs.getString(6),cs.getString(7)));
}
db.close();
return resultData;
@@ -171,4 +175,6 @@ public class DBHelper extends SQLiteOpenHelper {
}

View File

@@ -4,13 +4,19 @@ public class ImageFile {
String PkgNo;
String TestEnum;
String Type;
String CreateDate;
String PkgData;
String UserId;
String FilePath;
String FileName;
public ImageFile(String pkgNo, String testEnum, String type, String filePath, String fileName) {
public ImageFile(String pkgNo, String testEnum, String type, String createDate, String pkgData, String userId, String filePath, String fileName) {
PkgNo = pkgNo;
TestEnum = testEnum;
Type = type;
CreateDate = createDate;
PkgData = pkgData;
UserId = userId;
FilePath = filePath;
FileName = fileName;
}
@@ -39,6 +45,30 @@ public class ImageFile {
Type = type;
}
public String getCreateDate() {
return CreateDate;
}
public void setCreateDate(String createDate) {
CreateDate = createDate;
}
public String getPkgData() {
return PkgData;
}
public void setPkgData(String pkgData) {
PkgData = pkgData;
}
public String getUserId() {
return UserId;
}
public void setUserId(String userId) {
UserId = userId;
}
public String getFilePath() {
return FilePath;
}

View File

@@ -0,0 +1,57 @@
package com.qtagger.Database;
import com.qtagger.Data.CaptureFragmentEnum;
import com.qtagger.Data.TestEnum;
public enum TestType {
Top_Front,
Top_Back,
Top_Left,
Top_Right,
Middle_Front,
Middle_Back,
Middle_Left,
Middle_Right,
Bottom_Front,
Bottom_Back,
Bottom_Left,
Bottom_Right,
Filling,
Weight,
Nothing;
public static TestType getByName(String Name){
if(Name.compareTo(Top_Front.name()) == 0)
return Top_Front;
else if(Name.compareTo(Top_Back.name()) == 0)
return Top_Back;
else if(Name.compareTo(Top_Left.name()) == 0)
return Top_Left;
else if(Name.compareTo(Top_Right.name()) == 0)
return Top_Right;
else if(Name.compareTo(Middle_Front.name()) == 0)
return Middle_Front;
else if(Name.compareTo(Middle_Back.name()) == 0)
return Middle_Back;
else if(Name.compareTo(Middle_Left.name()) == 0)
return Middle_Left;
else if(Name.compareTo(Middle_Right.name()) == 0)
return Middle_Right;
else if(Name.compareTo(Bottom_Front.name()) == 0)
return Bottom_Front;
else if(Name.compareTo(Bottom_Back.name()) == 0)
return Bottom_Back;
else if(Name.compareTo(Bottom_Left.name()) == 0)
return Bottom_Left;
else if(Name.compareTo(Bottom_Right.name()) == 0)
return Bottom_Right;
return Nothing;
}
}

View File

@@ -1,6 +1,7 @@
package com.qtagger.util;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -12,13 +13,33 @@ import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.qtagger.R;
import java.util.ArrayList;
import java.util.List;
public class ImageSliderAdapter extends RecyclerView.Adapter<ImageSliderAdapter.MyViewHolder> {
private Context context;
private String[] sliderImage;
private List<String> sliderImage;
private MyViewHolder holder;
public ImageSliderAdapter(Context context, String[] sliderImage) {
public ImageSliderAdapter(Context context, List<String> sliderImage) {
this.context = context;
this.sliderImage = sliderImage;
if(sliderImage == null)
{
this.sliderImage = new ArrayList<>();
}
else{
this.sliderImage = sliderImage;
}
}
public void clear(){
sliderImage.clear();
if(holder != null)
holder.clear();
}
public void addItem(String item){
sliderImage.add(item);
}
@NonNull
@@ -26,18 +47,18 @@ public class ImageSliderAdapter extends RecyclerView.Adapter<ImageSliderAdapter.
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_slider, parent, false);
return new MyViewHolder(view);
holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.bindSliderImage(sliderImage[position]);
holder.bindSliderImage(sliderImage.get(position));
}
@Override
public int getItemCount() {
return sliderImage.length;
return sliderImage.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
@@ -50,9 +71,15 @@ public class ImageSliderAdapter extends RecyclerView.Adapter<ImageSliderAdapter.
}
public void bindSliderImage(String imageURL) {
Glide.with(context)
.load(imageURL)
.into(mImageView);
if(imageURL != null) {
Glide.with(context)
.load(imageURL)
.into(mImageView);
}
}
public void clear(){
mImageView.setImageBitmap(null);
}
}
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="oval">
<solid android:color="#FFFFFF"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="#4C4C4C"/>
</shape>
</item>
</selector>

View File

@@ -17,14 +17,51 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:id="@+id/imageView"
android:background="@color/black"
android:visibility="gone"
android:layout_gravity="center"/>
<android.widget.Button
android:id="@+id/button"
<RelativeLayout
android:id="@+id/layout_picture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/black"
android:paddingTop="3dp"
android:paddingBottom="3dp"
>
<android.widget.Button
android:id="@+id/button"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_centerInParent="true"
android:background="@drawable/button_camera_shot_background" />
</RelativeLayout >
<LinearLayout
android:id="@+id/layout_saveChecker"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@drawable/button_normal_background"
android:text="촬영"
android:textSize="20sp" />
android:background="@color/black"
android:visibility="gone"
android:orientation="horizontal">
<android.widget.Button
android:id="@+id/button_camera_retry"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:text="다시 시도"
android:textColor="@color/white"
/>
<android.widget.Button
android:id="@+id/button_PictureSave"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:text="확인"
android:textColor="@color/white"
/>
</LinearLayout>
</LinearLayout>

View File

@@ -59,6 +59,7 @@
android:foregroundGravity="center_vertical|center_horizontal" />
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_top_back"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -100,6 +101,7 @@
android:layout_height="wrap_content">
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_top_left"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -111,6 +113,7 @@
android:foregroundGravity="center_vertical|center_horizontal" />
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_top_right"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -191,6 +194,7 @@
android:foregroundGravity="center_vertical|center_horizontal" />
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_middle_back"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -232,6 +236,7 @@
android:layout_height="wrap_content">
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_middle_left"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -243,6 +248,7 @@
android:foregroundGravity="center_vertical|center_horizontal" />
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_middle_right"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -323,6 +329,7 @@
android:foregroundGravity="center_vertical|center_horizontal" />
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_bottom_back"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -364,6 +371,7 @@
android:layout_height="wrap_content">
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_bottom_left"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"
@@ -375,6 +383,7 @@
android:foregroundGravity="center_vertical|center_horizontal" />
<com.qtagger.CustomPalette.SquareButton
android:id="@+id/button_bottom_right"
android:layout_width="0dp"
android:layout_height="300dp"
android:layout_marginStart="3dp"