Android: нужна помощь, чтобы быстро создать экран активности камеры - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь оптимизировать время загрузки камеры. Мой текущий дизайн вызывает активность "CameraLoading" при нажатии на значок камеры. Действие CameraLoading запускает новое действие "CameraActivity", которое является реальной камерой.

Чтобы оптимизировать это программное обеспечение, я хочу пропустить действие CameraLoading и напрямую запустить CameraActivity. В CameraActivity мой экран (макет setcontentview) создается в начале onCreate, но не отображается, пока не будет готов предварительный просмотр времени.

Из-за этой проблемы, когда пользователь нажимает значок камеры, в течение долгого времени на экране ничего не происходит, камера внезапно открывается. Правда ли, что экран не появится, пока не завершатся функции onCreate и onResume?

Мне нужна ваша помощь в отображении на экране уведомления или анимации, информирующих пользователя об открытии камеры. Есть предложения?

1 Ответ

0 голосов
/ 12 января 2012

Для этого вам понадобится вторая нить для загрузки камеры. Так что создайте свою CameraActivity с простой загрузочной анимацией и настройте поток для загрузки камеры. После того, как он загружен, вы можете динамически установить его в своем представлении и удалить значок загрузки.

http://developer.android.com/resources/articles/painless-threading.html

Эта ссылка показывает использование потоков для загрузки изображения, чтобы оно не замедляло пользовательский интерфейс. Если вы можете понять это, тогда вы можете изменить его предпосылку для вашей цели. Надеюсь, это поможет

Пример кода, который может дать вам идею. Это просто код psuedo, поэтому возьмите его с солью:

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...