├── .gitignore
├── LICENSE
├── README.md
├── androidKML
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── vashisthg
│ │ └── androidkml
│ │ ├── KmlReader.java
│ │ ├── Placemark.java
│ │ └── Point.java
│ └── res
│ ├── drawable-hdpi
│ └── ic_launcher.png
│ ├── drawable-mdpi
│ └── ic_launcher.png
│ ├── drawable-xhdpi
│ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ └── ic_launcher.png
│ ├── layout
│ └── activity_main.xml
│ ├── menu
│ └── main.xml
│ ├── values-sw600dp
│ └── dimens.xml
│ ├── values-sw720dp-land
│ └── dimens.xml
│ ├── values-v11
│ └── styles.xml
│ ├── values-v14
│ └── styles.xml
│ └── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
└── androidKMLSample
└── src
└── main
├── AndroidManifest.xml
├── assets
└── test.kml
├── java
└── com
│ └── vashisthg
│ └── androidkmlsample
│ └── KMLActivity.java
└── res
├── drawable-hdpi
└── ic_launcher.png
├── drawable-mdpi
└── ic_launcher.png
├── drawable-xhdpi
└── ic_launcher.png
├── drawable-xxhdpi
└── ic_launcher.png
├── layout
└── activity_kml.xml
├── menu
└── kml.xml
├── values-sw600dp
└── dimens.xml
├── values-sw720dp-land
└── dimens.xml
├── values-v11
└── styles.xml
├── values-v14
└── styles.xml
└── values
├── dimens.xml
├── strings.xml
└── styles.xml
/.gitignore:
--------------------------------------------------------------------------------
1 | # built application files
2 | *.apk
3 | *.ap_
4 |
5 | # files for the dex VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # generated files
12 | bin/
13 | gen/
14 |
15 | # Local configuration file (sdk path, etc)
16 | local.properties
17 |
18 | # Eclipse project files
19 | .classpath
20 | .project
21 |
22 | # Proguard folder generated by Eclipse
23 | proguard/
24 |
25 |
26 | .DS_Store
27 |
28 | #Eclipse project files
29 | *.pydevproject
30 | .project
31 |
32 | .metadata
33 | bin/**
34 | tmp/**
35 | tmp/**/*
36 | *.tmp
37 | *.bak
38 | local.properties
39 | .classpath
40 | .settings/
41 | .loadpath
42 |
43 | # External tool builders
44 | .externalToolBuilders/
45 |
46 | # Locally stored "Eclipse launch configurations"
47 | *.launch
48 |
49 | # CDT-specific
50 | .cproject
51 |
52 | # PDT-specific
53 | .buildpath
54 |
55 | #IntelliJ
56 |
57 | *.iml
58 | *.ipr
59 | *.iws
60 | .idea/
61 |
62 |
63 | #android-studio
64 | *.gradle
65 | gradle/
66 | gradlew
67 | gradlew.bat
68 | */build/**
69 |
70 |
71 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 vashisthg
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | AndroidKMLParser
2 | ================
3 |
4 | Helper library to parse Placemark(s) from KML file and show in Android Map V2
5 |
--------------------------------------------------------------------------------
/androidKML/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/androidKML/src/main/java/com/vashisthg/androidkml/KmlReader.java:
--------------------------------------------------------------------------------
1 | package com.vashisthg.androidkml;
2 |
3 |
4 | import android.os.AsyncTask;
5 | import android.util.Log;
6 |
7 | import java.io.IOException;
8 | import java.io.InputStream;
9 | import java.io.Reader;
10 | import java.util.ArrayList;
11 | import java.util.List;
12 |
13 | import org.xmlpull.v1.XmlPullParser;
14 | import org.xmlpull.v1.XmlPullParserException;
15 | import org.xmlpull.v1.XmlPullParserFactory;
16 |
17 |
18 | /**
19 | * Created by vashisthg on 23/03/14.
20 | */
21 |
22 | public class KmlReader {
23 |
24 |
25 | public static interface Callback {
26 | public void onDocumentParsed(List placemarks);
27 | }
28 |
29 | private static final String LOGTAG = "KMLReader";
30 | private Callback callback;
31 |
32 | public KmlReader(Callback callback) {
33 | this.callback = callback;
34 | }
35 |
36 | public void read(InputStream inputStream) throws IOException, XmlPullParserException {
37 | ReaderTask task = ReaderTask.getReaderTask(inputStream, callback);
38 | task.execute();
39 | }
40 |
41 | public static class ReaderTask extends AsyncTask> {
42 |
43 | private static final String DOCUMENT_TAG = "Document";
44 | private static final String PLACEMARK_TAG = "Placemark";
45 | private static final String PLACEMARK_NAME_TAG = "name";
46 | private static final String PLACEMARK_POINT_TAG = "Point";
47 | private static final String PLACEMARK_POINT_COORDINATES_TAG = "coordinates";
48 | private static final String STYLE_TAG = "Style";
49 | private static final String STYLE_MAP_TAG = "StyleMap";
50 | private static final String STYLE_ICON_SCALE_TAG = "scale";
51 | private static final String STYLE_ICON_HREF_TAG = "href";
52 | private static final String PLACEMARK_DESCRIPTION_TAG = "description";
53 | private static final String PLACEMARK_ADDRESS_TAG = "address";
54 | private static final String PLACEMARK_SNIPPET_TAG = "Snippet";
55 | private static final String PLACEMARK_XDATA_TAG = "ExtendedData";
56 | private static final String PLACEMARK_STYLE_URL_TAG = "styleUrl";
57 | private static final String STYLE_MAP_PAIR_TAG = "Pair";
58 | private static final String KEY_TAG = "key";
59 | private static final String POLYGON_TAG = "Polygon";
60 | public static final String LINE_STRING_TAG = "LineString";
61 | private static final String LINE_STYLE_TAG = "LineStyle";
62 | private static final String POLY_STYLE_TAG = "PolyStyle";
63 | private static final String COLOR_TAG = "color";
64 | private static final String WIDTH_TAG = "width";
65 | private static final String DATA_TAG = "Data";
66 | private static final String VALUE_TAG = "value";
67 | private static final String KML_TAG = "kml";
68 |
69 |
70 | private boolean isDocument;
71 | private boolean isPlacemark;
72 | private boolean isPlacemarkName;
73 | private boolean isPlacemarkDescription;
74 | private boolean isPlacemarkPoint;
75 | private boolean isPlacemarkCoordinates;
76 |
77 | private String text;
78 |
79 | private Placemark placemark;
80 |
81 | private List placemarkList;
82 |
83 | private Callback callback;
84 |
85 | InputStream inputStream;
86 | public static ReaderTask getReaderTask(InputStream inputStream, Callback callback) {
87 | ReaderTask task = new ReaderTask();
88 | task.inputStream = inputStream;
89 | task.callback = callback;
90 | return task;
91 | }
92 |
93 | @Override
94 | protected List doInBackground(Void... params) {
95 | try {
96 | read(inputStream);
97 | } catch (IOException e) {
98 | e.printStackTrace();
99 | } catch (XmlPullParserException e) {
100 | e.printStackTrace();
101 | }
102 | return placemarkList;
103 | }
104 |
105 | @Override
106 | protected void onPostExecute(List placemarks) {
107 | super.onPostExecute(placemarks);
108 | callback.onDocumentParsed(placemarks);
109 | }
110 |
111 | public void read(InputStream inputStream) throws IOException, XmlPullParserException {
112 | XmlPullParserFactory factory = XmlPullParserFactory
113 | .newInstance();
114 | factory.setValidating(false);
115 | XmlPullParser myxml = factory.newPullParser();
116 |
117 | myxml.setInput(inputStream, null);
118 | processDocument(myxml);
119 | }
120 |
121 | protected void processDocument(XmlPullParser xpp)
122 | throws XmlPullParserException, IOException {
123 |
124 | placemarkList = new ArrayList();
125 | int eventType = xpp.getEventType();
126 |
127 | String text = null;
128 | do {
129 | if (eventType == XmlPullParser.START_DOCUMENT) {
130 | Log.d(LOGTAG, "Start document");
131 | } else if (eventType == XmlPullParser.END_DOCUMENT) {
132 |
133 | Log.d(LOGTAG, "End document");
134 | } else if (eventType == XmlPullParser.START_TAG) {
135 | processStartElement(xpp);
136 | } else if (eventType == XmlPullParser.END_TAG) {
137 | processEndElement(xpp, text);
138 | } else if (eventType == XmlPullParser.TEXT) {
139 | processText(xpp);
140 | }
141 | eventType = xpp.next();
142 | } while (eventType != XmlPullParser.END_DOCUMENT);
143 | }
144 |
145 | protected void processStartElement(XmlPullParser xpp) {
146 | String name = xpp.getName();
147 | processName(name, true);
148 |
149 | }
150 |
151 | private void processName(String name, boolean isStart) {
152 | if(DOCUMENT_TAG.equals(name)) {
153 | isDocument = isStart;
154 | }
155 |
156 | if(PLACEMARK_TAG.equals(name) && isDocument) {
157 | isPlacemark = isStart;
158 | if(isStart) {
159 | placemark = new Placemark();
160 | } else {
161 | placemarkList.add(placemark);
162 | }
163 | }
164 |
165 | if(PLACEMARK_NAME_TAG.equals(name) && isPlacemark) {
166 | isPlacemarkName = isStart;
167 | }
168 |
169 | if(PLACEMARK_DESCRIPTION_TAG.equals(name) && isPlacemark) {
170 | isPlacemarkDescription = isStart;
171 | }
172 |
173 | if(PLACEMARK_POINT_TAG.equals(name) && isPlacemark) {
174 | isPlacemarkPoint = isStart;
175 | }
176 |
177 | if(PLACEMARK_POINT_COORDINATES_TAG.equals(name) && isPlacemarkPoint) {
178 | isPlacemarkCoordinates = isStart;
179 | }
180 |
181 |
182 | }
183 |
184 | protected void processEndElement(XmlPullParser xpp, String text) {
185 | String name = xpp.getName();
186 | processName(name, false);
187 |
188 | }
189 |
190 | protected void processText(XmlPullParser xpp) throws XmlPullParserException {
191 | String text = xpp.getText();
192 | if(text.trim().equals("\n")) {
193 | return;
194 | }
195 | if(isPlacemark && isPlacemarkName) {
196 | placemark.setName(text);
197 | }
198 |
199 | if(isPlacemark && isPlacemarkDescription) {
200 | placemark.setDescription(text);
201 | }
202 |
203 | if(isPlacemark && isPlacemarkCoordinates) {
204 | Point point = new Point();
205 | String[] coordinates = text.split(",");
206 | point.setLongitude(Double.valueOf(coordinates[0]));
207 | point.setLatitude(Double.valueOf(coordinates[1]));
208 | point.setHeight(Double.valueOf(coordinates[2]));
209 | placemark.setPoint(point);
210 | }
211 | }
212 | }
213 | }
--------------------------------------------------------------------------------
/androidKML/src/main/java/com/vashisthg/androidkml/Placemark.java:
--------------------------------------------------------------------------------
1 | package com.vashisthg.androidkml;
2 |
3 | /**
4 | * Created by vashisthg on 23/03/14.
5 | */
6 | public class Placemark {
7 |
8 | private String name;
9 | private String description;
10 | private Point point;
11 |
12 | public Placemark() {
13 |
14 | }
15 |
16 | public Placemark(String name, Point point, String description) {
17 | this.name = name;
18 | this.point = point;
19 | this.description = description;
20 | }
21 |
22 |
23 | public static class PlacemarkBuilder {
24 | private String name;
25 | private Point point;
26 | private String description;
27 |
28 | public PlacemarkBuilder setName(String name) {
29 | this.name = name;
30 | return this;
31 | }
32 |
33 | public PlacemarkBuilder setPoint(Point point) {
34 | this.point = point;
35 | return this;
36 | }
37 |
38 | public PlacemarkBuilder setDescription(String description) {
39 | this.description = description;
40 | return this;
41 | }
42 |
43 | public Placemark createPlacemark() {
44 | return new Placemark(name, point, description);
45 | }
46 | }
47 |
48 | public String getName() {
49 | return name;
50 | }
51 |
52 | public void setName(String name) {
53 | this.name = name;
54 | }
55 |
56 | public Point getPoint() {
57 | return point;
58 | }
59 |
60 | public void setPoint(Point point) {
61 | this.point = point;
62 | }
63 |
64 | public String getDescription() {
65 | return description;
66 | }
67 |
68 | public void setDescription(String description) {
69 | this.description = description;
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/androidKML/src/main/java/com/vashisthg/androidkml/Point.java:
--------------------------------------------------------------------------------
1 | package com.vashisthg.androidkml;
2 |
3 | /**
4 | * Created by vashisthg on 23/03/14.
5 | */
6 | public class Point {
7 | private double longitude;
8 | private double latitude;
9 | private double height;
10 |
11 | public double getLatitude() {
12 | return latitude;
13 | }
14 |
15 | public void setLatitude(double latitude) {
16 | this.latitude = latitude;
17 | }
18 |
19 | public double getHeight() {
20 | return height;
21 | }
22 |
23 | public void setHeight(double height) {
24 | this.height = height;
25 | }
26 |
27 | public double getLongitude() {
28 |
29 | return longitude;
30 | }
31 |
32 | public void setLongitude(double longitude) {
33 | this.longitude = longitude;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKML/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKML/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKML/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKML/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKML/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKML/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKML/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKML/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/values-sw600dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/values-sw720dp-land/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 | 128dp
8 |
9 |
10 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 |
8 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | AndroidKML
5 | Settings
6 | Hello world!
7 |
8 |
9 |
--------------------------------------------------------------------------------
/androidKML/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
25 |
26 |
27 |
28 |
31 |
32 |
35 |
36 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/assets/test.kml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | New York City
6 | New York City
7 |
8 | -74.006393,40.714172,0
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/java/com/vashisthg/androidkmlsample/KMLActivity.java:
--------------------------------------------------------------------------------
1 | package com.vashisthg.androidkmlsample;
2 |
3 | import android.os.Bundle;
4 | import android.app.Activity;
5 | import android.support.v4.app.FragmentActivity;
6 | import android.util.Log;
7 | import android.view.Menu;
8 |
9 | import com.google.android.gms.maps.CameraUpdateFactory;
10 | import com.google.android.gms.maps.GoogleMap;
11 | import com.google.android.gms.maps.SupportMapFragment;
12 | import com.google.android.gms.maps.model.LatLng;
13 | import com.google.android.gms.maps.model.MarkerOptions;
14 | import com.vashisthg.androidkml.KmlReader;
15 | import com.vashisthg.androidkml.Placemark;
16 |
17 | import org.xmlpull.v1.XmlPullParserException;
18 |
19 | import java.io.IOException;
20 | import java.io.InputStream;
21 | import java.util.List;
22 |
23 | /**
24 | * Created by vashisthg on 23/03/14.
25 | */
26 |
27 | public class KMLActivity extends FragmentActivity {
28 |
29 | private static final String LOGTAG = "KMLActivity";
30 | private GoogleMap map;
31 |
32 | @Override
33 | protected void onCreate(Bundle savedInstanceState) {
34 | super.onCreate(savedInstanceState);
35 | setContentView(R.layout.activity_kml);
36 |
37 | map = ((SupportMapFragment) getSupportFragmentManager()
38 | .findFragmentById(R.id.map)).getMap();
39 | startReadingKml();
40 | }
41 |
42 | private void startReadingKml() {
43 | try {
44 | KmlReader reader = new KmlReader(kmlReaderCallback);
45 | InputStream fs = getAssets().open("test.kml");
46 | reader.read(fs);
47 | } catch (IOException e) {
48 | e.printStackTrace();
49 | } catch (XmlPullParserException e) {
50 | e.printStackTrace();
51 | }
52 | }
53 |
54 | @Override
55 | public boolean onCreateOptionsMenu(Menu menu) {
56 | getMenuInflater().inflate(R.menu.kml, menu);
57 | return true;
58 | }
59 |
60 | private KmlReader.Callback kmlReaderCallback = new KmlReader.Callback() {
61 | @Override
62 | public void onDocumentParsed(List placemarks) {
63 | Log.d(LOGTAG, "onDocumentParsed");
64 | LatLng latLng = null;
65 |
66 | for(Placemark placemark : placemarks) {
67 | latLng = new LatLng(placemark.getPoint().getLatitude(),
68 | placemark.getPoint().getLongitude());
69 |
70 | if(null == map) {
71 | throw new NullPointerException("map is null");
72 | }
73 | map.addMarker(new MarkerOptions()
74 | .title(placemark.getName())
75 | .snippet(placemark.getDescription())
76 | .position(latLng)
77 | );
78 | }
79 |
80 | if(null != latLng) {
81 | map.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 13));
82 | }
83 | }
84 | };
85 | }
86 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKMLSample/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKMLSample/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKMLSample/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vashisthg/AndroidKMLParser/341b75325787e9b12d0c66e67d62bac6b5cae581/androidKMLSample/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/layout/activity_kml.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/menu/kml.xml:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/values-sw600dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/values-sw720dp-land/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 | 128dp
8 |
9 |
10 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 |
8 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | AndroidKMLSample
5 | Settings
6 | Hello world!
7 |
8 |
9 |
--------------------------------------------------------------------------------
/androidKMLSample/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------