Mobil ilovalarni yaratish texnologiyalari fanidan (Maruza) mashgʻulot Mavzu: 14. Resurslar bilan ishlash. Qarshiboyev Akmal
Download 109.11 Kb.
|
mobil maruza
Mobil ilovalarni yaratish texnologiyalari fanidan (Maruza) mashgʻulot Mavzu: 14. Resurslar bilan ishlash. Qarshiboyev Akmal Android ilovasidagi resurs interfeys belgilash fayli kabi fayl yoki oddiy satr kabi ba'zi qiymatdir. Ya'ni, manbalar belgilash fayllari va alohida qatorlar, ovozli fayllar, tasvir fayllari va boshqalar. Barcha resurslar loyihada res katalogida joylashgan. Loyihada belgilangan resurslarning har xil turlari uchun res katalogida pastki kataloglar yaratiladi. Qo'llab-quvvatlanadigan pastki kataloglar: animator/: xususiyat animatsiyalarini belgilaydigan xml fayllari anim/: o'zaro animatsiyani belgilovchi xml fayllari rang/: ranglar ro'yxatini belgilaydigan xml fayllari chizilgan/: Grafik fayllar (.png, .jpg, .gif) mipmap/: Turli ekran oʻlchamlari uchun dastur piktogrammalarida ishlatiladigan tasvir fayllari layout/: ilovaning foydalanuvchi interfeysini belgilaydigan xml fayllari menyu/: ilova menyusini belgilaydigan xml fayllari raw/: xom holatda saqlangan turli fayllar qadriyatlar/: dasturda ishlatiladigan turli qiymatlarni o'z ichiga olgan xml fayllari, masalan, string resurslari xml/: ixtiyoriy xml fayllari font/: shrift taʼriflari va kengaytmalari .ttf, .otf yoki .ttc boʻlgan fayllar yoki elementini oʻz ichiga olgan XML fayllar Umuman olganda, biz quyidagi manba turlarini aniqlashimiz mumkin: Misol uchun, agar biz sukut bo'yicha yaratilgan standart Android Studio loyihasini olsak, res katalogida turli xil resurslar uchun bir nechta papkalar mavjudligini ko'rishimiz mumkin: Odatiy bo'lib, Android-da foydalaniladigan barcha turdagi resurslar uchun kataloglar mavjud emas, ammo agar kerak bo'lsa, biz kerakli katalogni res papkasiga qo'shishimiz va keyin unga resursni joylashtirishimiz mumkin. Loyiha kompilyatsiya qilinganda, barcha resurslar haqidagi ma'lumotlar maxsus R.jar fayliga qo'shiladi va undan keyin resurslar bilan ishlashda foydalaniladi. Resurslarni qo'llash Resurslarga kirishning ikki yo'li mavjud: manba kodi faylida va xml faylida. Koddagi manbalarga havola Ushbu yozuvdagi resurs turi R.java faylida belgilangan bo'shliqlardan (ichki sinflar) biriga tegishli bo'lib, ular xml da mos turlarga ega: R.drawable (uning xml chizilgan turi) R.id (id) R.layout (tartib) R.string (string) R.attr(attr) R.koʻplik (koʻplik) R.array (string-massiv) Masalan, onCreate() usulidagi MainActivity kodida active_main.xml resursini GUI sifatida o'rnatish uchun quyidagi qator mavjud: 1
R.layout.activity_main ifodasi orqali biz activity_main.xml resursiga murojaat qilamiz, bu erda layout resurs turi, active_main esa resurs nomidir. Xuddi shunday, biz boshqa resurslarni olishimiz mumkin. Masalan, app_name resursi res/values/strings.xml faylida aniqlanadi: Bu resurs satrga ishora qiladi. Java kodida berilgan resursga havola olish uchun biz R.string.app_name ifodasidan foydalanishimiz mumkin. xml faylida kirish Ko'pincha xml faylidagi manbaga murojaat qilish kerak bo'ladi, masalan, faollik_main.xml kabi vizual interfeysni belgilaydigan faylda. Xml fayllaridagi manba havolalari quyidagi rasmiylashtirilgan shaklga ega: @[paket_nomi:]resurs_turi/resurs_nomi package_name resurs joylashgan paket nomini bildiradi (agar resurs bir xil paketda bo'lsa, ixtiyoriy) resource_type resurs turi uchun R sinfida belgilangan kichik sinfni ifodalaydi resource_name - kengaytmasiz resurs fayl nomi yoki XML elementidagi android:name atributining qiymati (oddiy qiymatlar uchun). Masalan, biz strings.xml faylida resurs sifatida belgilangan TextView elementida satrni ko'rsatmoqchimiz:
getDimension(): raqamli qiymatni qaytaradi - o'lchov resursi getDrawable(): grafik faylni Drawable obyekti sifatida qaytaradi getBoolean(): mantiqiy qiymatni qaytaradi getColor(): rang taʼrifini qaytaradi getColorStateList(): ColorStateList ob'ektini - ranglar to'plamini qaytaradi getFont(): Shrift taʼrifini Shrift obyekti sifatida qaytaradi getFloat(): float qiymatini qaytaradi getLayout(): tartib fayli bilan bogʻlangan XmlResourceParser obyektini qaytaradi Bu usullarning faqat bir qismi. Lekin ularning barchasi parametr sifatida olinadigan resurs identifikatorini oladi. Keling, ularning qo'llanilishini qisqacha ko'rib chiqaylik. Resurs manbai sifatida bir xil res/values/strings.xml faylini olaylik, mening holimda u quyidagicha ko'rinadi: Va MainActivity kodini o'zgartiring: package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); // получение ресурсов из файла values/strings.xml String app_name = getResources().getString(R.string.app_name); TextView textView = new TextView(this); textView.setTextSize(30); textView.setText(app_name); setContentView(textView); } } Bu erda getResources() usulidan foydalanib, biz barcha resurslarni olamiz va keyin ularni grafik elementlarning xossa qiymatlarini o'rnatish uchun foydalanamiz. Ilova boshlanganda biz olingan resurslarning ilovasini ko'ramiz: Xuddi shunday, biz dasturli ravishda boshqa resurslarni olishimiz va ularni ilovada ishlatishimiz mumkin. Ammo shuni ta'kidlash kerakki, bu holda biz getResources() usulidan foydalanishimiz va umuman resursni olish uchun har qanday aniq amallarni bajarishimiz shart emas, chunki TextView sinfining setText() usuli manba identifikatori bo'yicha to'g'ridan-to'g'ri matn sozlamalarini qo'llab-quvvatlaydi: textView.setText(R.string.app_name); Download 109.11 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling