我正在尝试优化相机加载时间。我的当前设计在单击相机图标时调用活动"CameraLoading"
。 CameraLoading活动启动一个新活动"CameraActivity"
,这是真正的相机。
要优化此软件,我想跳过CameraLoading活动并直接启动CameraActivity。在CameraActivity中,我的屏幕(setcontentview布局)是在onCreate的开头创建的,但是在预览准备好之前它不会显示。
由于此问题,当用户点击相机图标时,很长一段时间屏幕上没有活动,相机会立即打开。在onCreate和onResume函数完成之前,屏幕是否会出现?
我需要你的帮助,在屏幕上显示一些通知或动画,告知用户正在打开相机。有什么建议吗?
答案 0 :(得分:0)
要执行此操作,您需要使用第二个线程来加载相机。因此,使用简单的加载动画创建您的CameraActivity并设置一个线程来加载相机。加载后,您可以将其动态设置到视图中并删除加载图标。
http://developer.android.com/resources/articles/painless-threading.html
此链接显示使用线程下载图像,因此不会降低UI的速度。如果您能理解,那么您可以根据自己的目的修改其前提。希望这有帮助
一些示例代码可能会提供您的想法。这只是伪代码,所以请用一点盐:
public void onCreate() {
...load view as usual
new LoadCameraTask().execute("http://example.com/image.png");
}
private class LoadCameraTask extends AsyncTask<String, Void, Bitmap> {
protected CameraClass doInBackground(String... urls) {
...perform loading of camera and return the camera object
return Camera;
}
protected void onPostExecute(CameraClass result) {
contentView.add(result);
contentView.remove(loadingIcon);
}
}