Drawable ob’ektlari bilan ishlash.
Drawable - bu "chizilishi mumkin bo'lgan narsa" uchun umumiy mavhumlik. Ko'pincha siz Drawable bilan narsalarni ekranga chizish uchun olinadigan
manba turi sifatida ishlaysiz; Drawable klassi turli shakllarga ega bo'lishi mumkin bo'lgan asosiy vizual resurs bilan ishlash uchun umumiy API taqdim etadi. dan farqli o'laroq View, Drawable-da voqealarni qabul qilish yoki foydalanuvchi bilan boshqa tarzda o'zaro aloqa qilish imkoniyati yo'q.
Oddiy chizmaga qo'shimcha
ravishda, Drawable o'z mijoziga chizilgan narsalar bilan o'zaro ta'sir qilish uchun bir qator umumiy mexanizmlarni taqdim etadi:
Usul setBounds(Rect)_mustDrawable qayerda chizilganligi va qanchalik katta bo'lishi kerakligini aytish uchun chaqiriladi. Barcha Drawablelar so'ralgan o'lchamga rioya qilishlari kerak, ko'pincha ularning tasvirlarini masshtablash orqali. Mijoz getIntrinsicHeight()va getIntrinsicWidth()usullari bilan ba'zi Drawables uchun afzal o'lchamni topishi mumkin.
Usul getPadding(Rect)ba'zi Drawables ma'lumotlaridan ularning ichiga joylashtirilgan tarkibni qanday ramkalash haqida ma'lumot qaytarishi mumkin. Misol uchun, tugma vidjeti uchun ramka bo'lish uchun mo'ljallangan Drawable yorlig'ini o'z ichiga to'g'ri joylashtiradigan to'ldirishni qaytarishi kerak.
Usul setState(int)mijozga Drawableni qaysi holatda chizish kerakligini aytish imkonini beradi, masalan, "fokuslangan", "tanlangan" va hokazo. Ba'zi chizmalar tanlangan holatga qarab o'z tasvirlarini o'zgartirishi mumkin.
Usul setLevel(int)mijozga akkumulyator darajasi yoki rivojlanish darajasi kabi Drawable ko'rsatkichini o'zgartirishi mumkin bo'lgan yagona doimiy kontrollerni etkazib berishga imkon beradi. Ba'zi chizmalar o'zlarining tasvirlarini joriy darajaga qarab o'zgartirishi mumkin.
Drawable o'z mijoziga Callbackinterfeys orqali qo'ng'iroq qilib, animatsiyalarni amalga oshirishi mumkin. setCallback(Callback)Animatsiyalar ishlashi uchun barcha mijozlar ushbu interfeysni (orqali) qo'llab-quvvatlashi kerak . Buning oddiy yo'li View.setBackground(Drawable)va kabi tizim ob'ektlari orqali amalga oshiriladi ImageView.
Odatda ilovaga ko'rinmasa ham, Drawables turli shakllarda bo'lishi mumkin: