From 35d7d2c0b58a006dfbd21f8450a21b205a10cae5 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek <hannes.janetzek@gmail.com> Date: Sun, 19 Jan 2014 17:25:27 +0100 Subject: [PATCH] android-example: add theme chooser menu + stress test --- vtm-android-example/res/menu/theme_menu.xml | 10 ++++ vtm-android-example/res/values/strings.xml | 3 + .../oscim/android/test/SimpleMapActivity.java | 56 ++++++++++++++++++- 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 vtm-android-example/res/menu/theme_menu.xml diff --git a/vtm-android-example/res/menu/theme_menu.xml b/vtm-android-example/res/menu/theme_menu.xml new file mode 100644 index 00000000..91d58b89 --- /dev/null +++ b/vtm-android-example/res/menu/theme_menu.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" > + <group android:id="@+id/themes" android:checkableBehavior="single" android:menuCategory="container"> + <item android:id="@+id/theme_default" android:checkable="true" android:title="@string/theme_default" android:checked="true" android:showAsAction="never"></item> + <item android:id="@+id/theme_tubes" android:checkable="true" android:title="@string/theme_tubes" android:showAsAction="never"></item> + <item android:id="@+id/theme_osmarender" android:checkable="true" android:title="@string/theme_osmarender" android:showAsAction="never"></item> + </group> + + +</menu> diff --git a/vtm-android-example/res/values/strings.xml b/vtm-android-example/res/values/strings.xml index 82ce024a..8e666a04 100644 --- a/vtm-android-example/res/values/strings.xml +++ b/vtm-android-example/res/values/strings.xml @@ -4,5 +4,8 @@ <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string> <string name="title_activity_map">MapActivity</string> + <string name="theme_default">Default</string> + <string name="theme_tubes">Tubes</string> + <string name="theme_osmarender">Osmarender</string> </resources> \ No newline at end of file diff --git a/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java b/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java index 0f6aeacf..c9091e18 100644 --- a/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/SimpleMapActivity.java @@ -15,11 +15,12 @@ * this program. If not, see <http://www.gnu.org/licenses/>. */package org.oscim.android.test; -import org.oscim.layers.tile.vector.BuildingLayer; import org.oscim.layers.tile.vector.labeling.LabelLayer; import org.oscim.theme.InternalRenderTheme; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; public class SimpleMapActivity extends BaseMapActivity { @@ -27,7 +28,8 @@ public class SimpleMapActivity extends BaseMapActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mMap.getLayers().add(new BuildingLayer(mMap, mBaseLayer.getTileLayer())); + //mMap.getLayers().add(new BuildingLayer(mMap, mBaseLayer.getTileLayer())); + mMap.getLayers().add(new LabelLayer(mMap, mBaseLayer.getTileLayer())); //mMap.getLayers().add(new GenericLayer(mMap, new GridRenderer())); @@ -37,5 +39,55 @@ public class SimpleMapActivity extends BaseMapActivity { //mMap.setTheme(InternalRenderTheme.OSMARENDER); mMap.setMapPosition(53.08, 8.83, Math.pow(2, 14)); + + //loooop(0); + } + + void loooop(final int i) { + mMapView.postDelayed(new Runnable() { + @Override + public void run() { + InternalRenderTheme t; + if (i == 0) + t = InternalRenderTheme.DEFAULT; + else if (i == 1) + t = InternalRenderTheme.TRONRENDER; + else + t = InternalRenderTheme.OSMARENDER; + + mMapView.getMap().setTheme(t); + + loooop((i + 1) % 3); + } + }, 300 + (int)(Math.random() * 200)); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.theme_menu, menu); + return true; + } + + @Override + public boolean onMenuItemSelected(int featureId, MenuItem item) { + + switch (item.getItemId()) { + case R.id.theme_default: + mMap.setTheme(InternalRenderTheme.DEFAULT); + item.setChecked(true); + return true; + + case R.id.theme_tubes: + mMap.setTheme(InternalRenderTheme.TRONRENDER); + item.setChecked(true); + return true; + + case R.id.theme_osmarender: + mMap.setTheme(InternalRenderTheme.OSMARENDER); + item.setChecked(true); + return true; + } + + return false; } }