تطبيق حديقة حيوانات بإستعمال Android و Google Maps الجزء الثاني


فهاد الجزء الثاني غادي نكملو ملفات التطبيق ديالنا غادي نزيدو الملفات ديال الصفحة الرئيسية بالإضافة للملفات لي غادي يمكنو من استرجاع المعلومات الخاصة بالحيونات والمواقع والصور .

نظرة سريعة بالفيديو


- الملف side_nav_bar.xml


فapp/src/main/res/drawable كنزيد ملف كنسميه side_nav_bar.xml ولي غادي يكون فيه الكود لي غادي يمكن من إضافة لbackground لخضر لي فلheader ديال القائمة الجانبية ديال التطبيق ديالنا الكود ديال الملف هو :

                                    
                                        <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="135"
        android:centerColor="#4CAF50"
        android:endColor="#2E7D32"
        android:startColor="#81C784"
        android:type="linear" />
</shape>
                                    
                                

- الملف content_main.xml


ف app/src/main/res/layout كنزيد ملف كنسميه content_main.xml ولي غادي يكون فيه الكود لي عبارة عن FrameLayout غادي تكون هي لي كتضمن المعلومات الرئيسية لي غادي نسترجعوا ونعرضو للمستخدم الكود ديال الملف هو :

                                    
                                        <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.darijacoding.annoncesapp.MainActivity"
    tools:showIn="@layout/app_bar_main">
    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
</RelativeLayout>

                                    
                                

- الملف Animal.java


ف app/src/main/java كنزيد مجلد جديد عبارة عن package كنسميه models غادي يكونو فيه لclasses لي غادي نسترجعو بهم المعلومات فاول ملف غادي نزيد لي عبارة عن class غادي نسميه Animal.java وغادي يكون فيه الكود لي كيتضمن المعلومات الخاصة بالحيوان وغادي يكونو فيه getters & setters لي غادي يمكنو من استرجاع وتعديل كل معلومة هاد ل class غادي تنفد واحد لinterface سميتها Parcelable ولي هي فقط كتخزن فيها المعلومات لي استرجعنا بواسطة لfonction writeToParcel من بعد كترجعها بل fonction createFromParcel الكود ديال الملف هو :

                                      
                                        package models;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by Imad on 22/02/2017.
 */
public class Animal implements Parcelable{
    private String name;
    private String species;
    private String description;
    private String thumbnail;
    private String image;

    public Animal() {

    }
    public Animal(String name, String species, String description, String thumbnail, String image) {
        this.name = name;
        this.species = species;
        this.description = description;
        this.thumbnail = thumbnail;
        this.image = image;
    }
    public Animal(Parcel source) {
        name = source.readString();
        species = source.readString();;
        description = source.readString();;
        thumbnail = source.readString();;
        image = source.readString();;
    }
    public String getName() {
        return name;
    }

    public String getSpecies() {
        return species;
    }

    public String getDescription() {
        return description;
    }

    public String getThumbnail() {
        return thumbnail;
    }

    public String getImage() {
        return image;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setSpecies(String species) {
        this.species = species;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public void setThumbnail(String thumbnail) {
        this.thumbnail = thumbnail;
    }

    public void setImage(String image) {
        this.image = image;
    }

    @Override
    public int describeContents() {
        return 0;
    }
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        getDefaultValues();
        dest.writeString(name);
        dest.writeString(species);
        dest.writeString(description);
        dest.writeString(thumbnail);
        dest.writeString(image);
    }
    private void getDefaultValues() {
        if(name == null){
            name = "";
        }
        if(species == null){
            species = "";
        }
        if(description == null){
            description = "";
        }
        if(thumbnail == null){
            thumbnail = "";
        }
        if(image == null){
            image = "";
        }
    }
    public static Creator<Animal> CREATOR = new Creator<Animal>() {
        @Override
        public Animal createFromParcel(Parcel source) {
            return new Animal(source);
        }

        @Override
        public Animal[] newArray(int size) {
            return new Animal[size];
        }
    };
}
                                      
                                    

- الملف Gallery.java


دائما فالمجلد models غادي نزيد ملف عبارة عن class غادي نسميه Gallery.java وغادي يكون فيه الكود لي كيتضمن المعلومات الخاصة بالصور لي غادي انسترجعوا وغادي يكونو فيه getters & setters لي غادي يمكنو من استرجاع وتعديل كل معلومة الكود ديال الملف هو :

                                        
                                            package models;

/**
 * Created by Imad on 23/02/2017.
 */
public class Gallery {
    private String thumbnail;
    private String image;
    private String caption;
    public Gallery(String thumbnail, String image, String caption) {
        this.thumbnail = thumbnail;
        this.image = image;
        this.caption = caption;
    }
    public Gallery() {

    }
    public void setImage(String image) {
        this.image = image;
    }

    public void setThumbnail(String thumbnail) {
        this.thumbnail = thumbnail;
    }

    public void setCaption(String caption) {
        this.caption = caption;
    }

    public String getThumbnail() {
        return thumbnail;
    }

    public String getCaption() {
        return caption;
    }

    public String getImage() {
        return image;
    }
}
                                        
                                    

- الملف Place.java


دائما فالمجلد models غادي نزيد ملف عبارة عن class غادي نسميه Place.java وغادي يكون فيه الكود لي كيتضمن الإحداثيات الخاصة بالموقع لي غادي انسترجعوا وغادي يكونو فيه getters & setters لي غادي يمكنو من استرجاع وتعديل كل إحداثية الكود ديال الملف هو :

                                        
                                            package models;

/**
 * Created by Imad on 23/02/2017.
 */
public class Place {
    private String name;
    private double longitude;
    private double latitude;

    public Place() {
    }

    public Place(String name, double longitude, double latitude) {
        this.name = name;
        this.longitude = longitude;
        this.latitude = latitude;
    }

    public String getName() {
        return name;
    }

    public double getLatitude() {
        return latitude;
    }

    public double getLongitude() {
        return longitude;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }
}
                                        
                                    

كلمات مفاتيح :