촬영한 사진 출력
This commit is contained in:
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -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" />
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# C/C++ build system timings
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 27ms
|
||||
create_cxx_tasks completed in 29ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 23ms
|
||||
create_cxx_tasks completed in 24ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 16ms
|
||||
create_cxx_tasks completed in 17ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 21ms
|
||||
create_cxx_tasks completed in 22ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 19ms
|
||||
create_cxx_tasks completed in 20ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 15ms
|
||||
create_cxx_tasks completed in 15ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 15ms
|
||||
create_cxx_tasks completed in 16ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 17ms
|
||||
create_cxx_tasks completed in 17ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 14ms
|
||||
create_cxx_tasks completed in 15ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 14ms
|
||||
create_cxx_tasks completed in 14ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 15ms
|
||||
create_cxx_tasks completed in 16ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 23ms
|
||||
create_cxx_tasks completed in 24ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 20ms
|
||||
create_cxx_tasks completed in 21ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 17ms
|
||||
create_cxx_tasks completed in 18ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 21ms
|
||||
create_cxx_tasks completed in 22ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 21ms
|
||||
create_cxx_tasks completed in 22ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 22ms
|
||||
create_cxx_tasks completed in 22ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 17ms
|
||||
create_cxx_tasks completed in 18ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 29ms
|
||||
create_cxx_tasks completed in 30ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 26ms
|
||||
create_cxx_tasks completed in 27ms
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 21ms
|
||||
create_cxx_tasks completed in 22ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 18ms
|
||||
create_cxx_tasks completed in 19ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 25ms
|
||||
create_cxx_tasks completed in 26ms
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 19ms
|
||||
create_cxx_tasks completed in 20ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 17ms
|
||||
create_cxx_tasks completed in 18ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 17ms
|
||||
create_cxx_tasks completed in 17ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 21ms
|
||||
create_cxx_tasks completed in 21ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 16ms
|
||||
create_cxx_tasks completed in 17ms
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 18ms
|
||||
create_cxx_tasks completed in 19ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 15ms
|
||||
create_cxx_tasks completed in 15ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 31ms
|
||||
create_cxx_tasks completed in 32ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 16ms
|
||||
create_cxx_tasks completed in 16ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 16ms
|
||||
create_cxx_tasks completed in 17ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 18ms
|
||||
create_cxx_tasks completed in 18ms
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# C/C++ build system timings
|
||||
create_cxx_tasks
|
||||
create-initial-cxx-model 21ms
|
||||
create_cxx_tasks completed in 22ms
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
19
app/src/main/java/com/qtagger/Data/CaptureFragmentEnum.java
Normal file
19
app/src/main/java/com/qtagger/Data/CaptureFragmentEnum.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
57
app/src/main/java/com/qtagger/Database/TestType.java
Normal file
57
app/src/main/java/com/qtagger/Database/TestType.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
13
app/src/main/res/drawable/button_camera_shot_background.xml
Normal file
13
app/src/main/res/drawable/button_camera_shot_background.xml
Normal 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>
|
||||
@@ -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>
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user