!22 修改连拍间隔1秒时出现白屏照片的问题,增加全局线程池处理jpg转webp
Merge pull request !22 from 肖岩/founchBranch
This commit is contained in:
commit
bfe2f6b985
@ -87,6 +87,8 @@ import java.util.List;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
import java.util.concurrent.Callable;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE;
|
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE;
|
||||||
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER;
|
import static com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER;
|
||||||
@ -306,42 +308,12 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
|
|||||||
}
|
}
|
||||||
File file = new File(finalVideoPath);
|
File file = new File(finalVideoPath);
|
||||||
initMarkerPaper();
|
initMarkerPaper();
|
||||||
Runnable runnable = new Runnable() {
|
result.toFile(file, new FileCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void onFileReady(@Nullable File file) {
|
||||||
result.toFile(file, new FileCallback() {
|
UserApplication.fixedThreadPool.execute(new Jpg2WebpRunnable(result, file));
|
||||||
@Override
|
|
||||||
public void onFileReady(@Nullable File file) {
|
|
||||||
if (file!=null&&file.exists()){
|
|
||||||
WebPNative webPNative = new WebPNative();
|
|
||||||
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
|
|
||||||
webPNative.encodeRGBA(bitmap, file.getPath(), 90);
|
|
||||||
runOnUiThread(new Runnable() {
|
|
||||||
@SuppressLint("SetTextI18n")
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
if (file.exists()) {
|
|
||||||
initMarker();
|
|
||||||
videoIndex = Integer.parseInt(file.getName().replace(".webp", ""));
|
|
||||||
finalVideoPath = Objects.requireNonNull(file.getParentFile()).getAbsolutePath() + "/" + (videoIndex + 1) + ".webp";
|
|
||||||
tvTitle.setText("保存成功:" + (videoIndex + 1));
|
|
||||||
}
|
|
||||||
if (radioPicture == 1) {
|
|
||||||
Message message = new Message();
|
|
||||||
message.what = 0x103;
|
|
||||||
handler.sendMessage(message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (!bitmap.isRecycled()) {
|
|
||||||
bitmap.recycle();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
UserApplication.fixedThreadPool.submit(runnable);
|
|
||||||
} else {
|
} else {
|
||||||
isBack = false;
|
isBack = false;
|
||||||
if (isOration) {
|
if (isOration) {
|
||||||
@ -362,6 +334,61 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
|
|||||||
tvMapView.setLayoutParams(layoutParamsMap);
|
tvMapView.setLayoutParams(layoutParamsMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Jpg2WebpRunnable implements Runnable {
|
||||||
|
private PictureResult pictureResult;
|
||||||
|
private File file;
|
||||||
|
|
||||||
|
public Jpg2WebpRunnable(PictureResult pictureResult,File file) {
|
||||||
|
this.pictureResult = pictureResult;
|
||||||
|
this.file = file;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (file.exists() && file != null) {
|
||||||
|
WebPNative webPNative = new WebPNative();
|
||||||
|
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
|
||||||
|
webPNative.encodeRGBA(bitmap, file.getPath(), 90);
|
||||||
|
if (!bitmap.isRecycled()) {
|
||||||
|
bitmap.recycle();
|
||||||
|
}
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (PicturesActivity.this!=null) {
|
||||||
|
if (file.exists()) {
|
||||||
|
initMarker();
|
||||||
|
videoIndex = Integer.parseInt(file.getName().replace(".webp", ""));
|
||||||
|
finalVideoPath = Objects.requireNonNull(file.getParentFile()).getAbsolutePath() + "/" + (videoIndex + 1) + ".webp";
|
||||||
|
tvTitle.setText("保存成功:" + (videoIndex + 1));
|
||||||
|
}
|
||||||
|
if (radioPicture == 1&&handler!=null) {
|
||||||
|
Message message = new Message();
|
||||||
|
message.what = 0x103;
|
||||||
|
handler.sendMessage(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
isBack = false;
|
||||||
|
if (isOration) {
|
||||||
|
stopTimer();
|
||||||
|
}
|
||||||
|
if (radioPicture != 1) {
|
||||||
|
capturePicture.setText("开始采集");
|
||||||
|
}
|
||||||
|
capturePicture.setChecked(false);
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Toast.makeText(PicturesActivity.this, "源文件不存在", Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void initLine() {
|
private void initLine() {
|
||||||
if (geoWkt != null) {
|
if (geoWkt != null) {
|
||||||
String geo = Geohash.getInstance().decode(geoWkt);
|
String geo = Geohash.getInstance().decode(geoWkt);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user