Android问题-拍照时使用处理程序
我试图在我的android应用程序中向用户显示总的图像拍摄时间(计时器) 我所做的: 当片段开始时,我正在启动处理程序。(即)我已经在我的“onCreateView”方法中启动了处理程序,如下所示Android问题-拍照时使用处理程序,android,timer,camera,handler,runnable,Android,Timer,Camera,Handler,Runnable,我试图在我的android应用程序中向用户显示总的图像拍摄时间(计时器) 我所做的: 当片段开始时,我正在启动处理程序。(即)我已经在我的“onCreateView”方法中启动了处理程序,如下所示 MainFragment: private long startTime = 0L; private long timeInMillies = 0L; private long timeSwap = 0L; private long finalTime = 0L; public View onCr
MainFragment:
private long startTime = 0L;
private long timeInMillies = 0L;
private long timeSwap = 0L;
private long finalTime = 0L;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.capture,
container, false);
TextView textview = (TextView)rootView.findViewById(R.id.timer);
startTime = SystemClock.uptimeMillis();
Handler myHandler = new Handler();
Runnable updateTimer = new Runnable() {
public void run() {
timeInMillies = SystemClock.uptimeMillis() - startTime;
finalTime = timeSwap + timeInMillies;
int seconds = (int) (finalTime / 1000);
seconds = seconds % 60;
int milliseconds = (int) (finalTime % 1000);
milliseconds = milliseconds % 60 ;
textview.setText(String.format("%02d", seconds) + ":" + String.format("%02d", milliseconds) + "s");
myHandler.postDelayed(this, 0);
}
};
myHandler.postDelayed(updateTimer, 0);
.
.
.
return rootView;
}
我想要什么:
处理程序运行良好,计时器不会延迟(00.00,00.01,00.02,00.03,00.04,…,10.32),直到我开始调用“摄像机。拍摄(null,null,pictureCallback);”。一旦我调用“照相机。拍照”,计时器就会显示时间,并有几秒的延迟(00.00,00.01,00.02,00.03,延迟,02.30,02.31,02.32,延迟,04.03,04.04,…)
有什么问题吗?有人面对过这个问题吗?如何解决此问题
@Override
public void onResume() {
super.onResume();
.
.
.
camera.takePicture(null, null, pictureCallback);
}