1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/MCXIAOBING-DialogLoadding

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Диалог загрузки

Автор: Программист XiaoBing

Пожалуйста, нажмите здесь, чтобы следить за мной в Weibo

Долгосрочно поддерживающий проект Android, который включает реализацию часто используемых функций, а также подробное объяснение ключевых моментов, конечно же, вместе с информацией о Java.

Инструменты Android, открытый проект:

Подробности см. на GitHub: https://github.com/QQ986945193/DavidAndroidProjectTools

Конечно, все знают, что при разработке приложений, обычно не обойтись без того, чтобы использовать диалоговое окно "загрузка". Например, когда запрашиваешь данные сети, скорее всего, скорость интернета будет медленной,

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

которое сообщает пользователю, что данные ещё загружаются, обеспечивая лучший опыт использования. Вот такой эффект я покажу вам как создать. Сначала посмотрим на пример:

Здесь находится изображение

Я использовал handler для создания задержки в две секунды перед тем, как диалог исчезнет. Конечно, в вашем проекте вы можете слушать нужные вам методы, чтобы сделать диалог невидимым.

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

Первый шаг — напишите свой собственный диалог. Код довольно детализирован. Это создание диалогового окна, например:

public static Dialog createLoadingDialog(Context context, String msg) {
    LayoutInflater inflater = LayoutInflater.from(context);
    View v = inflater.inflate(R.layout.dialog_loading, null); // Получаем представление диалога
    LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_loading_view); // Получаем линейное представление
    TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView); // Получаем текстовое поле для сообщений
    tipTextView.setText(msg); // Устанавливаем сообщение загрузки
}

Далее создаем диалог с пользовательским стилем:

Dialog loadingDialog = new Dialog(context, R.style.MyDialogStyle); // Создаем диалог с пользовательским стилем
loadingDialog.setCancelable(true); // Можно ли закрыть диалог нажатием кнопки "Назад"
loadingDialog.setCanceledOnTouchOutside(false); // Закрывается ли диалог при клике вне области диалога
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.MATCH_PARENT)); // Устанавливаем контент диалога

/**
 * Обертка метода отображения диалога
 */
Window window = loadingDialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setGravity(Gravity.CENTER);
window.setAttributes(lp);
window.setWindowAnimations(R.style.PopWindowAnimStyle);
loadingDialog.show();

Затем мы можем видеть, что возвращается объект диалога, который можно использовать в нашем классе.Конечно, если есть отображение, то должно быть и закрытие. Мы просто упаковываем метод закрытия в наш кастомный диалог.

/**
 * Закрыть диалог
 *
 * @param mDialogUtils
 */
public static void closeDialog(Dialog mDialogUtils) {
    if (mDialogUtils != null && mDialogUtils.isShowing()) {
        mDialogUtils.dismiss();
    }
}

Затем мы можем его использовать. Здесь мы просто хотели показать вам идею реализации, так как это затрагивает некоторые графические материалы.

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

Конечно, если мой проект помог вам, приветствуем ваше пожертвование, пригласите автора выпить чашку чая. Спасибо за поддержку.

Алipay

WeChat


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/MCXIAOBING-DialogLoadding.git
git@api.gitlife.ru:oschina-mirror/MCXIAOBING-DialogLoadding.git
oschina-mirror
MCXIAOBING-DialogLoadding
MCXIAOBING-DialogLoadding
master