Android. Программирование для профессионалов. 4-е издание


Листинг 7.1. Добавление кода анимации (MainActivity.kt)



Download 21,53 Mb.
Pdf ko'rish
bet113/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   109   110   111   112   113   114   115   116   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner

Листинг 7.1. Добавление кода анимации (MainActivity.kt)
class MainActivity : AppCompatActivity() {
...
override fun onCreate(savedInstanceState:
Bundle?) {
...
cheatButton.setOnClickListener { view -
>
// Начало CheatActivity
val answerIsTrue =
quizViewModel.currentQuestionAnswer
val intent =
CheatActivity.newIntent(this@MainActivity,
answerIsTrue)
val options = ActivityOptions
.makeClipRevealAnimation(vi
ew, 0, 0, view.width, view.height)
startActivityForResult(intent,
REQUEST_CODE_CHEAT, options.toBundle())
}


updateQuestion()
}
...
}
Вы используете класс 
ActivityOptions
, чтобы настроить
запуск activity. В приведенном выше коде вы вызываете
функцию 
make 
Clip 
RevealAnimation(...)
, чтобы указать,
что 
CheatActivity
должен использовать анимацию
отображения. Значения, которые вы передаете в 
makeClip- 
Reveal 
Animation(...)
, указывают на объект, который
следует использовать как источник анимации (в данном случае
кнопка 
CHEAT!
), положение x и y (относительно источника) для
начала отображения новой activity, а также начальную ширину
и высоту новой activity.
Обратите внимание, что вы назвали лямбда-аргумент 
view
,
а не использовали имя по умолчанию. В контексте настройки
слушателя щелчка мыши лямбда-аргумент представляет собой
кликнутый виджет. Присваивать имя аргументу необязательно,
но это может улучшить читабельность вашего кода. Мы
рекомендуем называть аргумент, когда он используется где-то
еще.
Наконец, вы вызвали функцию 
options.toBundle()
,
чтобы упаковать 
Activity 
Options
в объект 
Bundle
, а затем
передали их в функцию 
start 
Activity 
For 
Result(...)
.
ActivityManager
использует пакет опций, чтобы определить,
как вывести вашу activity на экран.
Обратите внимание, что в строке, где вы вызываете
ActivityOptions.makeClip 
RevealAnimation(...)
,
появляется ошибка Lint в виде красной загогулины под
названием функции, а при нажатии на функцию появляется


красная лампочка. Функция 
makeClipRevealAnimation(...)
была добавлена в Android SDK на уровне API 23, поэтому
данный код будет аварийно завершаться на устройстве под
управлением API 22 или ниже.
Поскольку заданная вами версия SDK для компиляции равна
API 28-го уровня, то сам компилятор проблем с этим кодом
испытывать не будет. А вот Android Lint знает минимальную
версию SDK, и поэтому жалуется.
Сообщения об ошибках будут выглядеть примерно так: «Call
requires API level 23 (current min is 21)». Запуск кода с этим
предупреждением возможен, но Lint знает, что это
небезопасно.
Как избавиться от ошибок? Первый способ — поднять
минимальную версию SDK до 23. Однако тем самым вы не
столько решаете проблему совместимости, сколько обходите ее.
Если ваше приложение не может устанавливаться на
устройствах c API уровня 23 и более старых устройствах, то
проблема совместимости исчезает.
Другое, более правильное решение — заключить код более
высокого уровня API в условную конструкцию, которая
проверяет версию Android на устройстве.

Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   109   110   111   112   113   114   115   116   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish