Latest web development tutorials

Zasoby Android (Zasoby) zarządzanie

Istnieje wiele rzeczy używanych zbudować doskonałą aplikację na Androida. Oprócz kodowania aplikacji, trzeba skupić się na różnych zasobów, takich jak wykorzystać różne treści statycznych, takich jak bitmapy, kolorów definicji układ, ciągów interfejsu użytkownika, animacji i tak dalej. Zasoby te są zwykle umieszczone w podkatalogu RES / autonomicznego projektu.

Ta część poradnika nauczą się organizować swoje zasoby aplikacji, należy określić alternatywne środki, a dostęp do nich w aplikacji.


Środki organizacyjne w Eclipse

Będziesz musiał być umieszczony w każdym zasobie pod konkretnego podkatalogu swojego res projektu / katalogu. Na przykład, jest to prosty projekt na poziomie plików:

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml 

res / katalog zawiera wszystkie zasoby w różnych podkatalogów. Oto źródło obraz, dwa zasoby układ i zawartość pliku zasobów ciąg. Poniższa tabela przedstawia szczegółowy w res projektu / zasobów pomocy katalogów.

katalog Typ zasobu
anim / plik XML, który definiuje właściwości animacji. Są one zapisywane w RES / anim / folderu, według rodzaju dostępu R.anim
kolor / plik XML, który określa listę stanu koloru. Są one zapisywane w res / kolor / folderu, według rodzaju dostępu R.color
drawable / Pliki graficzne, takie jak .png, .jpg, .gif lub pliku XML, jest kompilowany jako bitmapy, listy państwowej, kształty, animowanych obrazów. Są one zapisywane w RES / drawable / folderu, według rodzaju dostępu R.drawable
układ / Niestandardowy układ UI plik XML. Są one zapisywane w res / layout / folderu, według rodzaju dostępu R.layout
menu / Menu aplikacji pliki XML niestandardowe, takie jak menu Opcje, menu kontekstowego podmenu. Są one zapisywane w res / menu / folderu, według rodzaju dostępu R.menu
raw / Wszystkie pliki są zapisywane w ich oryginalnej formie. Musimy R.raw.filename nazwie identyfikator zasobów, aby otworzyć plik raw wywołując Resource.openRawResource ()
wartości / Pliki XML zawierają prostych wartości (takie jak ciągi liczb, kolorów, itp.) Oto niektóre środki w ramach konwencji nazewnictwa folderów. arrays.xml w imieniu szeregu środków, poprzez typu R.array dostępu; integers.xml oznacza liczbę zasobów dostępna poprzez R.integer klasy; zasobów bools.xml w imieniu wartości logicznych, rodzaj dostępu R.bool, zasoby colors.xml w imieniu kolorze dostępne za pośrednictwem klasy R.color; dimens.xml przedstawiciele wymiaru wartości poprzez typu R.dimen dostępu; strings.xml reprezentuje zasób ciąg, poprzez typu R.string dostępu; przedstawicieli styles.xml styl zasobów według rodzaju dostępu R.style
xml / Dzwoniąc Resources.getXML () do odczytu dowolnych plików XML w czasie wykonywania. Różne pliki konfiguracyjne można zapisać czas pracy tutaj

Zasoby alternatywne

Aplikacja musi zapewnić środki na wsparcie alternatywną konfigurację dla konkretnego urządzenia. Na przykład, trzeba zapewnić alternatywny obraz zasobów dla różnych rozdzielczości ekranu, zapewniając alternatywne środki ciągów dla różnych języków. W czasie wykonywania Android wykrywa bieżącą konfigurację urządzenia i załadować odpowiednie zasoby dla aplikacji.

Aby zidentyfikować zestaw alternatywnych środków dla konkretnej konfiguracji, następujących etapów:

  • Tworzenie nowego katalogu res / dół <RESOURCE_NAME> _ <config_qualifier> są nazwane. Tutaj resources_name żadnych zasobów wymienionych w tabeli, takie jak układ i obrazami. kwalifikator określi, jakie zasoby użyć indywidualną konfigurację. Można zobaczyć oficjalną dokumentację kompletną listę różnych typów zasobów eliminacjach.
  • Zapisywanie alternatywnych środków w odpowiedzi na tego katalogu. Te pliki zasobów musi wykazać, domyślna nazwa pliku zasobów jest zgodna z następującymi przykładami, jednak dokumenty te określają zawartość zmiany. Na przykład: Podczas nazwać ten sam plik obrazka, ale rozdzielczość ekranu o rozdzielczości obrazu będzie wyższa.

Oto przykład, aby określić domyślny obraz ekranu i wysokiej rozdzielczości zastąpienia obrazu.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
       res/
          drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml

Oto kolejny przykład, aby określić język domyślny układ i alternatywne układy język arabski.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
      res/
         drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        layout-ar/
            main.xml
        values/  
            strings.xml

Dostęp do zasobów

W rozwoju aplikacji, potrzebujemy dostępu do określonych zasobów, albo za pomocą kodu lub za pośrednictwem plików XML. Poniższe sekcje opisują, jak uzyskać dostęp do tych zasobów oddzielnie w dwóch scenariuszach.

W kodzie dostępu do zasobów

Gdy aplikacja Android jest kompilowany do generowania klasy R, który zawiera identyfikator i wszystkie RES / zasobów katalogowych. Można użyć klasy R, + od nazwy zasobu podklasa lub bezpośrednio wykorzystywać identyfikator zasobów w celu uzyskania dostępu do zasobów.

Przykłady

res ACCESS / drawable / myimage.png i ustaw go na ImageView, należy użyć następującego kodu:

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

Pierwsza linia kodu tutaj, aby uzyskać R.id.myimageview zdefiniowany myimageview z ImageView w pliku układu. Druga linia z R.drawable.myimage aby uzyskać obraz w RES / drawable w podkatalogu o nazwie myimage.

Przykłady

Rozważmy przykład, w którym RES / / wartości strings.xml zdefiniowany w następujący sposób:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string  name="hello">Hello, World!</string>
</resources>

Teraz możesz użyć identyfikator obiektu z MSG TextView identyfikator zasobu, aby ustawić tekst w następujący sposób:

TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);

Przykłady

Rozważmy następującą definicję res Układ / Układ / activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >

   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a TextView" />

   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a Button" />

</LinearLayout>

Kod aplikacji załaduje układ aktywności, onCreate () metoda w następujący sposób:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>

Wejście w XML

Rozważmy następujący plik XML zasobów RES / wartości / strings.xml, który zawiera zasób barw oraz zasobu ciąg -

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" />

Teraz można korzystać z tych zasobów w poniższym pliku układu, aby ustawić kolor tekstu i zawartości tekstowej:

<code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" /&gt;
</code>

Teraz, jeśli powrót do poprzedniej sekcji, aby wyjaśnić "Hello World!" Przykład, mogę potwierdzić, że w tej części wszyscy mamy lepsze zrozumienie tego pojęcia. Dlatego zalecamy, aby wrócić do spojrzeć na poprzednich przykładach, a ja używać innego widoku wykorzystania zasobów podstawowego.