{"id":412,"date":"2015-01-21T22:32:08","date_gmt":"2015-01-21T22:32:08","guid":{"rendered":"http:\/\/www.fandroid.info\/?page_id=412"},"modified":"2016-02-01T23:00:21","modified_gmt":"2016-02-01T23:00:21","slug":"urok-6-ustanovka-polzovatelskih-animatsij-v-material-design","status":"publish","type":"page","link":"https:\/\/www.fandroid.info\/urok-6-ustanovka-polzovatelskih-animatsij-v-material-design\/","title":{"rendered":"\u0423\u0440\u043e\u043a 6. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u0432 Material Design"},"content":{"rendered":"
\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f\u043c \u0432 Material Design \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043e\u0442\u043a\u043b\u0438\u043a \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u043f\u0440\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u0422\u0435\u043c\u0430 Material Design \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u044f\u0434 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043e\u043a \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0430 \u0432 Android 5.0 (\u0443\u0440\u043e\u0432\u0435\u043d\u044c API 21) \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435:<\/p>\n
\u0420\u0435\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u0430\u0441\u0430\u043d\u0438\u0435 \u0432 Material Design \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432 \u0442\u043e\u0447\u043a\u0435 \u043a\u0430\u0441\u0430\u043d\u0438\u044f. \u0412 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043d\u043e\u043f\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u044d\u0442\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 XML-\u0444\u0430\u0439\u043b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0443\u043a\u0430\u0437\u0430\u0432 \u0444\u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435.<\/strong> \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u041c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0446\u0432\u0435\u0442 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u043f\u0440\u0430\u0432\u043a\u0435 \u043f\u043e API \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0433\u0434\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0438\u043b\u0438 \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 \u041a\u0430\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u0441\u043a\u0440\u044b\u0442\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430:<\/p>\n <\/p>\n \u041a\u0430\u043a \u0441\u043a\u0440\u044b\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0430:<\/p>\n <\/p>\n \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 Material Design \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u043f\u0443\u0442\u0435\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u0449\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u043e\u0431\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438.<\/p>\n \u0412 Android 5.0 (\u0443\u0440\u043e\u0432\u0435\u043d\u044c API 21) \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b:<\/p>\n \u041b\u044e\u0431\u043e\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434, \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0430 \u0412 Android 5.0 (\u0443\u0440\u043e\u0432\u0435\u043d\u044c API 21) \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043e\u0431\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n \u0415\u0441\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043f\u043b\u0430\u0432\u043d\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u044b.<\/p>\n \u00a0 \u0420\u0438\u0441\u0443\u043d\u043e\u043a\u00a02.<\/strong> \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0441 \u043e\u0434\u043d\u0438\u043c \u043e\u0431\u0449\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c.<\/p>\n \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <\/p>\n \u041f\u0435\u0440\u0435\u0445\u043e\u0434 <\/p>\n \u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u0427\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0434\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043e\u043a\u043d\u0430, \u0432\u044b\u0437\u043e\u0432\u0438\u0442\u0435 \u043c\u0435\u0442\u043e\u0434 <\/p>\n \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0434\u0435, \u0432\u044b\u0437\u043e\u0432\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u041c\u0435\u0442\u043e\u0434\u044b \u0427\u0442\u043e\u0431\u044b \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u043c\u0435\u0440\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043a\u0430\u043a \u0432 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439, \u0442\u0430\u043a \u0438 \u0432 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434, \u043e\u0434\u043d\u0430\u043a\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043e\u043a\u043d\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0437\u0430\u0442\u0435\u043c\u043d\u0435\u043d\u0438\u0435).<\/p>\n \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u043d\u044c\u0448\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434 \u0415\u0441\u043b\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0438 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u043d \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434, \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n <\/p>\n \u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u043d \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434, \u043e\u043d \u0442\u0430\u043a\u0436\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0441 \u043e\u0431\u0449\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c<\/p>\n <\/p>\n \u0414\u043b\u044f \u043e\u0431\u0449\u0438\u0445 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u043a\u043e\u0434\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043c\u0435\u0442\u043e\u0434 \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0432\u044b\u0437\u043e\u0432\u0438\u0442\u0435 \u043c\u0435\u0442\u043e\u0434 \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043e\u0431\u0449\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u043e\u0431\u0449\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043e\u0431\u043e\u0438\u0445 \u043c\u0430\u043a\u0435\u0442\u0430\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <\/p>\n \u041f\u0440\u0438 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0432 Material Design \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u0440\u0438\u0432\u044b\u0435 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u0438 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0445\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0412 Android 5.0 (\u0443\u0440\u043e\u0432\u0435\u043d\u044c API 21) \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u043a\u0440\u0438\u0432\u044b\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u0445\u0435\u043c\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u0440\u0438\u0432\u043e\u0439.<\/p>\n \u041a\u043b\u0430\u0441\u0441 <\/p>\n \u0412 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f XML-\u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u0442\u0440\u0435\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043a\u0440\u0438\u0432\u044b\u0445 \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 Material Design:<\/span><\/p>\n \u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u041a\u043b\u0430\u0441\u0441 <\/p>\n \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u0430\u0441\u0441\u0430 <\/p>\n \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043a \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 \u0442\u0435\u043c\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u043c\u044b Material Design, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443 \u043a\u043d\u043e\u043f\u043e\u043a \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0441\u0438 Z. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043e\u043a, \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u0434\u043b\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043b\u0430\u0441\u0441\u0430 <\/p>\n \u0412\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b<\/a> \u043c\u043e\u0436\u043d\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u0443\u0449\u0435\u0440\u0431\u0430 \u0447\u0435\u0442\u043a\u043e\u0441\u0442\u0438. \u041a\u043b\u0430\u0441\u0441 \u0410\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0442\u0440\u0435\u0445 XML-\u0444\u0430\u0439\u043b\u0430\u0445:<\/p>\n \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u041f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <\/p>\n \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u0445 \u0438\u043c\u0435\u043d\u0430:<\/p>\n <\/p>\n \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 <\/p>\n \u0412\u0442\u043e\u0440\u043e\u0439 \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u0432 \u0434\u0440\u0443\u0433\u0443\u044e. \u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0435 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b: \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u0430\u043d\u0434, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n <\/p>\n \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u043f\u0440\u0430\u0432\u043a\u0435 \u043f\u043e API \u0434\u043b\u044f RippleDrawable<\/a><\/code>, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u0440\u044f\u0431\u0438.<\/p>\n\n
?android:attr\/selectableItemBackground<\/code> \u0434\u043b\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u044f\u0431\u0438;<\/li>\n?android:attr\/selectableItemBackgroundBorderless<\/code> \u0434\u043b\u044f \u0440\u044f\u0431\u0438, \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0439 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u0440\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0435 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0444\u043e\u043d\u0430, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c \u043e\u0442 null.<\/li>\n<\/ul>\nselectableItemBackgroundBorderless<\/code>\u00a0\u2014 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 \u0443\u0440\u043e\u0432\u043d\u0435 API 21.<\/p>\nRippleDrawable<\/a><\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 XML-\u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 ripple<\/code>.<\/p>\nRippleDrawable<\/a><\/code>. \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u043e\u0442\u043a\u043b\u0438\u043a\u0430 \u043d\u0430 \u043a\u0430\u0441\u0430\u043d\u0438\u0435, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c \u0442\u0435\u043c\u044b android:colorControlHighlight<\/code> .<\/p>\nRippleDrawable<\/a><\/code>.<\/p>\n\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f<\/h2>\n
\nViewAnimationUtils.createCircularReveal()<\/a><\/code> \u043c\u043e\u0436\u043d\u043e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043a\u0440\u0443\u0433, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043a\u0440\u044b\u0442\u044c \u0441 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.<\/p>\n\/\/ previously invisible view\r\nView myView = findViewById(R.id.my_view);\r\n\r\n\/\/ get the center for the clipping circle\r\nint cx = (myView.getLeft() + myView.getRight()) \/ 2;\r\nint cy = (myView.getTop() + myView.getBottom()) \/ 2;\r\n\r\n\/\/ get the final radius for the clipping circle\r\nint finalRadius = Math.max(myView.getWidth(), myView.getHeight());\r\n\r\n\/\/ create the animator for this view (the start radius is zero)\r\nAnimator anim =\r\n\u00a0 \u00a0 ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);\r\n\r\n\/\/ make the view visible and start the animation\r\nmyView.setVisibility(View.VISIBLE);\r\nanim.start();<\/pre>\n
\/\/ previously visible view\r\nfinal View myView = findViewById(R.id.my_view);\r\n\r\n\/\/ get the center for the clipping circle\r\nint cx = (myView.getLeft() + myView.getRight()) \/ 2;\r\nint cy = (myView.getTop() + myView.getBottom()) \/ 2;\r\n\r\n\/\/ get the initial radius for the clipping circle\r\nint initialRadius = myView.getWidth();\r\n\r\n\/\/ create the animation (the final radius is zero)\r\nAnimator anim =\r\n\u00a0 \u00a0 ViewAnimationUtils.createCircularReveal(myView, cx, cy, initialRadius, 0);\r\n\r\n\/\/ make the view invisible when the animation is done\r\nanim.addListener(new AnimatorListenerAdapter() {\r\n\u00a0 \u00a0 @Override\r\n\u00a0 \u00a0 public void onAnimationEnd(Animator animation) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 super.onAnimationEnd(animation);\r\n\u00a0 \u00a0 \u00a0 \u00a0 myView.setVisibility(View.INVISIBLE);\r\n\u00a0 \u00a0 }\r\n});\r\n\r\n\/\/ start the animation\r\nanim.start();<\/pre>\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432<\/h2>\n
\n\n
\n
Visibility<\/a><\/code>, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043b\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u043f\u0440\u0430\u0432\u043a\u0435 \u043f\u043e API \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 Transition<\/a><\/code>.<\/p>\n\n
<\/span><\/p>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432<\/h3>\n
android:windowContentTransitions<\/code> \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0441\u0442\u0438\u043b\u044f, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0433\u043e \u0438\u0437 \u0442\u0435\u043c\u044b Material Design. \u0412 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0441\u0442\u0438\u043b\u044f \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043e\u0431\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<style name=\"BaseAppTheme\" parent=\"android:Theme.Material\">\r\n\u00a0 <!-- enable window content transitions -->\r\n\u00a0 <item name=\"android:windowContentTransitions\">true<\/item>\r\n\r\n\u00a0 <!-- specify enter and exit transitions -->\r\n\u00a0 <item name=\"android:windowEnterTransition\">@transition\/explode<\/item>\r\n\u00a0 <item name=\"android:windowExitTransition\">@transition\/explode<\/item>\r\n\r\n\u00a0 <!-- specify shared element transitions -->\r\n\u00a0 <item name=\"android:windowSharedElementEnterTransition\">\r\n\u00a0 \u00a0 @transition\/change_image_transform<\/item>\r\n\u00a0 <item name=\"android:windowSharedElementExitTransition\">\r\n\u00a0 \u00a0 @transition\/change_image_transform<\/item>\r\n<\/style><\/pre>\n
change_image_transform<\/code> \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<!-- res\/transition\/change_image_transform.xml -->\r\n<!-- (see also Shared Transitions below) -->\r\n<transitionSet xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\">\r\n\u00a0 <changeImageTransform\/>\r\n<\/transitionSet><\/pre>\n
changeImageTransform<\/code> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u0443 ChangeImageTransform<\/a><\/code>. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u043f\u0440\u0430\u0432\u043a\u0435 \u043f\u043e API \u0434\u043b\u044f Transition<\/a><\/code>.<\/p>\nWindow.requestFeature()<\/a><\/code>:<\/p>\n\/\/ inside your activity (if you did not enable transitions in your theme)\r\ngetWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);\r\n\r\n\/\/ set an exit transition\r\ngetWindow().setExitTransition(new Explode());<\/pre>\n
Transition<\/a><\/code>:<\/p>\n\n
Window.setEnterTransition()<\/a><\/code>;<\/li>\nWindow.setExitTransition()<\/a><\/code>;<\/li>\nWindow.setSharedElementEnterTransition()<\/a><\/code>;<\/li>\nWindow.setSharedElementExitTransition()<\/a><\/code>.<\/li>\n<\/ul>\nsetExitTransition()<\/a><\/code> \u0438 setSharedElementExitTransition()<\/a><\/code> \u0437\u0430\u0434\u0430\u044e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u041c\u0435\u0442\u043e\u0434\u044b setEnterTransition()<\/a><\/code> \u0438 setSharedElementEnterTransition()<\/a><\/code> \u0437\u0430\u0434\u0430\u044e\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\nWindow.setAllowEnterTransitionOverlap()<\/a><\/code> . \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u043d\u044b\u043c\u0438.<\/p>\n\u0417\u0430\u043f\u0443\u0441\u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432<\/h3>\n
startActivity(intent,\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ActivityOptions.makeSceneTransitionAnimation(this).toBundle());<\/pre>\n
null<\/code> \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432.<\/p>\n\u0417\u0430\u043f\u0443\u0441\u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/h3>\n
\n
android:transitionName<\/code>.<\/li>\nActivityOptions.makeSceneTransitionAnimation()<\/a><\/code>.<\/li>\n<\/ol>\n\/\/ get the element that receives the click event\r\nfinal View imgContainerView = findViewById(R.id.img_container);\r\n\r\n\/\/ get the common element for the transition in this activity\r\nfinal View androidRobotView = findViewById(R.id.image_small);\r\n\r\n\/\/ define a click listener\r\nimgContainerView.setOnClickListener(new View.OnClickListener() {\r\n\u00a0 \u00a0 @Override\r\n\u00a0 \u00a0 public void onClick(View view) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 Intent intent = new Intent(this, Activity2.class);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \/\/ create the transition animation - the images in the layouts\r\n\u00a0 \u00a0 \u00a0 \u00a0 \/\/ of both activities are defined with android:transitionName=\"robot\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 ActivityOptions options = ActivityOptions\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 .makeSceneTransitionAnimation(this, androidRobotView, \"robot\");\r\n\u00a0 \u00a0 \u00a0 \u00a0 \/\/ start the new activity\r\n\u00a0 \u00a0 \u00a0 \u00a0 startActivity(intent, options.toBundle());\r\n\u00a0 \u00a0 }\r\n});<\/pre>\nView.setTransitionName()<\/a><\/code> \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043e\u0431\u0435\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445.<\/p>\nActivity.finishAfterTransition()<\/a><\/code> \u0432\u043c\u0435\u0441\u0442\u043eActivity.finish()<\/a><\/code>.<\/p>\n\u0417\u0430\u043f\u0443\u0441\u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043e\u0431\u0449\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438<\/h3>\n
android:transitionName<\/code> (\u0438\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043c\u0435\u0442\u043e\u0434\u043e\u043c View.setTransitionName()<\/a><\/code> \u0432 \u043e\u0431\u0435\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445), \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 ActivityOptions<\/a><\/code>, \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0438\u0436\u0435.<\/p>\nActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,\r\n\u00a0 \u00a0 \u00a0 \u00a0 Pair.create(view1, \"agreedName1\"),\r\n\u00a0 \u00a0 \u00a0 \u00a0 Pair.create(view2, \"agreedName2\"));<\/pre>\n
\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u0440\u0438\u0432\u043e\u0439<\/h2>\n
\nPathInterpolator<\/a><\/code>\u00a0\u2014 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0442\u043e\u0440 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u0440\u0438\u0432\u043e\u0439 \u0411\u0435\u0437\u044c\u0435 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Path<\/a><\/code>. \u0414\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0442\u043e\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043a\u0440\u0438\u0432\u043e\u0439 \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0435 1\u00a0x\u00a01 \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u0432 \u0442\u043e\u0447\u043a\u0430\u0445 (0,0) \u0438 (1,1), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438, \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0442\u043e\u0440 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 XML-\u0440\u0435\u0441\u0443\u0440\u0441\u0430:<\/p>\n<pathInterpolator xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n\u00a0 \u00a0 android:controlX1=\"0.4\"\r\n\u00a0 \u00a0 android:controlY1=\"0\"\r\n\u00a0 \u00a0 android:controlX2=\"1\"\r\n\u00a0 \u00a0 android:controlY2=\"1\"\/>\r\n<\/pre>\n
\n
@interpolator\/fast_out_linear_in.xml<\/code>;<\/li>\n@interpolator\/fast_out_slow_in.xml<\/code>;<\/li>\n@interpolator\/linear_out_slow_in.xml<\/code>.<\/li>\n<\/ul>\nPathInterpolator<\/a><\/code> \u0432 \u043c\u0435\u0442\u043e\u0434 Animator.setInterpolator()<\/a><\/code>.<\/p>\nObjectAnimator<\/a><\/code> \u0438\u043c\u0435\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0434\u043e\u043b\u044c \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0434\u0432\u0443\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 Path<\/a><\/code> \u0434\u043b\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0441\u044f\u043c X \u0438 Y:<\/p>\nObjectAnimator mAnimator;\r\nmAnimator = ObjectAnimator.ofFloat(view, View.X, View.Y, path);\r\n...\r\nmAnimator.start();<\/pre>\n
\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/h2>\n
\nStateListAnimator<\/a><\/code> \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044fStateListAnimator<\/a><\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 XML-\u0440\u0435\u0441\u0443\u0440\u0441\u0430:<\/p>\n<!-- animate the translationZ property of a view when pressed -->\r\n<selector xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\">\r\n\u00a0 <item android:state_pressed=\"true\">\r\n\u00a0 \u00a0 <set>\r\n\u00a0 \u00a0 \u00a0 <objectAnimator android:propertyName=\"translationZ\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:duration=\"@android:integer\/config_shortAnimTime\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:valueTo=\"2dp\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:valueType=\"floatType\"\/>\r\n\u00a0 \u00a0 \u00a0 \u00a0 <!-- you could have other objectAnimator elements\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0here for \"x\" and \"y\", or other properties -->\r\n\u00a0 \u00a0 <\/set>\r\n\u00a0 <\/item>\r\n\u00a0 <item android:state_enabled=\"true\"\r\n\u00a0 \u00a0 android:state_pressed=\"false\"\r\n\u00a0 \u00a0 android:state_focused=\"true\">\r\n\u00a0 \u00a0 <set>\r\n\u00a0 \u00a0 \u00a0 <objectAnimator android:propertyName=\"translationZ\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:duration=\"100\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:valueTo=\"0\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:valueType=\"floatType\"\/>\r\n\u00a0 \u00a0 <\/set>\r\n\u00a0 <\/item>\r\n<\/selector><\/pre>\n
selector<\/code> \u0432 \u0444\u0430\u0439\u043b\u0435 XML-\u0440\u0435\u0441\u0443\u0440\u0441\u0430 (\u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435), \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u044c\u0442\u0435 \u0435\u0433\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 android:stateListAnimator<\/code>. \u0427\u0442\u043e\u0431\u044b \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0434\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043c\u0435\u0442\u043e\u0434AnimationInflater.loadStateListAnimator()<\/a><\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u044c\u0442\u0435 \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440 \u0441\u0432\u043e\u0435\u043c\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 View.setStateListAnimator()<\/a><\/code>.<\/p>\nandroid:stateListAnimator<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 @null<\/code>.<\/p>\nAnimatedStateListDrawable<\/a><\/code> \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0443\u0436\u0430\u0442 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0412 Android 5.0 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0432\u0438\u0434\u0436\u0435\u0442\u0430\u0445 \u0442\u0430\u043a\u0430\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f AnimatedStateListDrawable<\/a><\/code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 XML-\u0440\u0435\u0441\u0443\u0440\u0441\u0430:<\/p>\n<!-- res\/drawable\/myanimstatedrawable.xml -->\r\n<animated-selector\r\n\u00a0 \u00a0 xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\">\r\n\r\n\u00a0 \u00a0 <!-- provide a different drawable for each state-->\r\n\u00a0 \u00a0 <item android:id=\"@+id\/pressed\" android:drawable=\"@drawable\/drawableP\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:state_pressed=\"true\"\/>\r\n\u00a0 \u00a0 <item android:id=\"@+id\/focused\" android:drawable=\"@drawable\/drawableF\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:state_focused=\"true\"\/>\r\n\u00a0 \u00a0 <item android:id=\"@id\/default\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:drawable=\"@drawable\/drawableD\"\/>\r\n\r\n\u00a0 \u00a0 <!-- specify a transition -->\r\n\u00a0 \u00a0 <transition android:fromId=\"@+id\/default\" android:toId=\"@+id\/pressed\">\r\n\u00a0 \u00a0 \u00a0 \u00a0 <animation-list>\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <item android:duration=\"15\" android:drawable=\"@drawable\/dt1\"\/>\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <item android:duration=\"15\" android:drawable=\"@drawable\/dt2\"\/>\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ...\r\n\u00a0 \u00a0 \u00a0 \u00a0 <\/animation-list>\r\n\u00a0 \u00a0 <\/transition>\r\n\u00a0 \u00a0 ...\r\n<\/animated-selector><\/pre>\n
\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h2>\n
\nAnimatedVectorDrawable<\/a><\/code>\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.<\/p>\n\n
<vector><\/code> \u0432 res\/drawable\/<\/code>;<\/li>\n<animated-vector><\/code> \u0432 res\/drawable\/<\/code>;<\/li>\n<objectAnimator><\/code> \u0432 res\/anim\/<\/code>.<\/li>\n<\/ul>\n<group><\/code> \u0438<path><\/code>. \u042d\u043b\u0435\u043c\u0435\u043d\u0442<group><\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0438\u043b\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f, \u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <path><\/code>\u00a0\u2014 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0440\u0438\u0441\u043e\u0432\u043a\u0438.<\/p>\nandroid:name<\/code> \u0434\u043b\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0438\u043b\u0438 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043e\u0441\u043b\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0445 \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<!-- res\/drawable\/vectordrawable.xml -->\r\n<vector xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n\u00a0 \u00a0 android:height=\"64dp\"\r\n\u00a0 \u00a0 android:width=\"64dp\"\r\n\u00a0 \u00a0 android:viewportHeight=\"600\"\r\n\u00a0 \u00a0 android:viewportWidth=\"600\">\r\n\u00a0 \u00a0 <group\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:name=\"rotationGroup\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:pivotX=\"300.0\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:pivotY=\"300.0\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:rotation=\"45.0\" >\r\n\u00a0 \u00a0 \u00a0 \u00a0 <path\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 android:name=\"v\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 android:fillColor=\"#000000\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 android:pathData=\"M300,70 l 0,-70 70,70 0,0 -70,70z\" \/>\r\n\u00a0 \u00a0 <\/group>\r\n<\/vector><\/pre>\n
<!-- res\/drawable\/animvectordrawable.xml -->\r\n<animated-vector xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n\u00a0 android:drawable=\"@drawable\/vectordrawable\" >\r\n\u00a0 \u00a0 <target\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:name=\"rotationGroup\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:animation=\"@anim\/rotation\" \/>\r\n\u00a0 \u00a0 <target\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:name=\"v\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:animation=\"@anim\/path_morph\" \/>\r\n<\/animated-vector><\/pre>\n
ObjectAnimator<\/a><\/code> \u0438\u043b\u0438 AnimatorSet<\/a><\/code>. \u041f\u0435\u0440\u0432\u044b\u0439 \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443 \u043d\u0430 360 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432:<\/p>\n<!-- res\/anim\/rotation.xml -->\r\n<objectAnimator\r\n\u00a0 \u00a0 android:duration=\"6000\"\r\n\u00a0 \u00a0 android:propertyName=\"rotation\"\r\n\u00a0 \u00a0 android:valueFrom=\"0\"\r\n\u00a0 \u00a0 android:valueTo=\"360\" \/><\/pre>\n
<!-- res\/anim\/path_morph.xml -->\r\n<set xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\">\r\n\u00a0 \u00a0 <objectAnimator\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:duration=\"3000\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:propertyName=\"pathData\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:valueFrom=\"M300,70 l 0,-70 70,70 0,0 \u00a0 -70,70z\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:valueTo=\"M300,70 l 0,-70 70,0 \u00a00,140 -70,0 z\"\r\n\u00a0 \u00a0 \u00a0 \u00a0 android:valueType=\"pathType\" \/>\r\n<\/set><\/pre>\n
AnimatedVectorDrawable<\/a><\/code>.<\/p>\n<\/div>\n