调整hdr拍照倍数

mem
liuguijing 6 months ago
parent 254ce22206
commit 973d09a93f

@ -58,6 +58,7 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import com.xypower.mppreview.bean.Contants;
import com.xypower.mppreview.widget.ErrorDialog;
import java.io.File;
@ -140,7 +141,7 @@ public class Camera2RawFragment extends Fragment {
public boolean isHandTakePic = true;
private double pic1 = 1;
private double pic1 = 0;
/**
* {@link TextureView.SurfaceTextureListener} handles several lifecycle events of a
@ -517,9 +518,11 @@ public class Camera2RawFragment extends Fragment {
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture);
Bundle arguments = getArguments();
if (arguments != null) {
pic1 = arguments.getInt(Contants.HDRNUM);
}
mOrientationListener = new OrientationEventListener(getActivity(), SensorManager.SENSOR_DELAY_NORMAL) {
@Override
public void onOrientationChanged(int orientation) {
@ -528,7 +531,6 @@ public class Camera2RawFragment extends Fragment {
}
}
};
Button takepic = view.findViewById(R.id.takepic);
takepic.setOnClickListener(new View.OnClickListener() {
@Override
@ -1102,6 +1104,7 @@ public class Camera2RawFragment extends Fragment {
// 设置曝光时间例如设置为1000微秒
// long exposureTime = 1000 000000L; // 1000微秒
if (isHandTakePic) {
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
if (exposureTime > 0) {
v = exposureTime * pic1;
@ -1120,8 +1123,13 @@ public class Camera2RawFragment extends Fragment {
if (isHandTakePic) {
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
if (exposureTime > 0) {
if (pic1 <= 0) {
v = exposureTime * 7;
captureBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, (long) v);
} else {
v = exposureTime * pic1;
captureBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, (long) v);
}
}
if (sensitivity > 0) {
captureBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, 100);

@ -2,6 +2,7 @@ package com.xypower.mppreview;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
@ -10,16 +11,24 @@ import android.view.WindowInsets;
import android.view.WindowInsetsController;
import android.view.WindowManager;
import com.xypower.mppreview.bean.Contants;
public class CameraActivity extends AppCompatActivity {
public int intExtra;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_camera);
Intent intent = getIntent();
intExtra = intent.getIntExtra(Contants.HDRNUM, 0);
if (null == savedInstanceState) {
getSupportFragmentManager().beginTransaction().setReorderingAllowed(true).replace(R.id.container, Camera2RawFragment.class, null).commit();
Bundle bundle = new Bundle();
bundle.putInt(Contants.HDRNUM,intExtra);
getSupportFragmentManager().beginTransaction().setReorderingAllowed(true).replace(R.id.container, Camera2RawFragment.class, bundle).commit();
}
}
}

@ -4,7 +4,6 @@ import static com.xypower.mppreview.Camera2RawFragment.makeHdr;
import static com.xypower.mppreview.HdrUtil.generateTimestamp;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.ImageFormat;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CaptureResult;
@ -13,6 +12,8 @@ import android.media.Image;
import android.media.ImageReader;
import android.os.Environment;
import com.xypower.mppreview.bean.PngPhotoBean;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

@ -1,7 +1,5 @@
package com.xypower.mppreview;
import static java.lang.System.loadLibrary;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
@ -9,29 +7,29 @@ import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import com.xypower.mppreview.bean.Contants;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
public class MainActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener {
public static int ExposureComp = 0;
private EditText hdrnum;
private Button systakepic;
private Button hdrtakepic;
private ActivityResultLauncher<Intent> photoResultLauncher;
private int picsize = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initActivityResult();
}
@ -39,10 +37,10 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
private void initView() {
hdrtakepic = findViewById(R.id.hdrtakepic);
systakepic = findViewById(R.id.systakepic);
hdrnum = findViewById(R.id.hdr_num);
Spinner spinner = findViewById(R.id.spinner);
hdrtakepic.setOnClickListener(this);
systakepic.setOnClickListener(this);
spinner.setOnItemSelectedListener(this);
}
private void initActivityResult() {
@ -85,12 +83,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
switch (id) {
case R.id.hdrtakepic:
Intent intent = new Intent(this, CameraActivity.class);
Editable text = hdrnum.getText();
String s = text.toString();
if (s != null && !s.equals("")) {
double v = Double.parseDouble(s);
intent.putExtra("hdrnum", v);
}
intent.putExtra(Contants.HDRNUM, picsize);
startActivity(intent);
break;
case R.id.systakepic:
@ -101,4 +94,13 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
picsize = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}

@ -0,0 +1,5 @@
package com.xypower.mppreview.bean;
public class Contants {
public static final String HDRNUM = "hdrnum";
}

@ -1,4 +1,4 @@
package com.xypower.mppreview;
package com.xypower.mppreview.bean;
public class PngPhotoBean {

@ -21,15 +21,7 @@
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@+id/hdrhint"
app:layout_constraintLeft_toRightOf="@+id/hdrhint"
app:layout_constraintTop_toTopOf="@+id/hdrhint" />
<EditText
android:id="@+id/hdr_num"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:entries="@array/size"
app:layout_constraintBottom_toBottomOf="@+id/hdrhint"
app:layout_constraintLeft_toRightOf="@+id/hdrhint"
app:layout_constraintTop_toTopOf="@+id/hdrhint" />

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="size">
<item>默认</item>
<item>X1</item>
<item>X2</item>
<item>X3</item>
<item>X4</item>
<item>X5</item>
<item>X6</item>
<item>X7</item>
<item>X8</item>
<item>X9</item>
<item>X10</item>
<item>X11</item>
<item>X12</item>
<item>X13</item>
<item>X14</item>
<item>X15</item>
<item>X16</item>
<item>X17</item>
<item>X18</item>
<item>X19</item>
<item>X20</item>
</string-array>
</resources>
Loading…
Cancel
Save