imageIds, int width, int height, int padding) {
this.context = context;
this.imageIds = imageIds;
+ this.width = width;
+ this.height = height;
+ this.padding = padding;
}
@Override
@@ -63,6 +70,9 @@ public class ChooseActivityTypeImageAdapter extends BaseAdapter {
imageView = (ImageView) convertView;
}
imageView.setImageResource(imageIds.get(position));
+ imageView.setMinimumHeight(height);
+ imageView.setMinimumWidth(width);
+ imageView.setPadding(padding, padding, padding, padding);
return imageView;
}
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java
index 1ab8dca50..227b29d80 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java
@@ -124,4 +124,9 @@ public class Api11Adapter extends Api10Adapter {
public void invalidMenu(Activity activity) {
activity.invalidateOptionsMenu();
}
+
+ @Override
+ public boolean isSpinnerBackgroundLight() {
+ return false;
+ }
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java
index 3279e52eb..4fe71f9f9 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java
@@ -133,6 +133,11 @@ public class Api8Adapter implements ApiAdapter {
// Do nothing
}
+ @Override
+ public boolean isSpinnerBackgroundLight() {
+ return true;
+ }
+
@Override
public boolean handleSearchKey(MenuItem menuItem) {
// Return false and allow the framework to handle the search key.
diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java
index d4949c47d..a8684ac8c 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java
@@ -163,6 +163,13 @@ public interface ApiAdapter {
*/
public void invalidMenu(Activity activity);
+ /**
+ * True if the spinner background is light color.
+ *
+ * Due to changes in API level 11.
+ */
+ public boolean isSpinnerBackgroundLight();
+
/**
* Handles the search key press. Returns true if handled.
*
diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/TrackIconUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/TrackIconUtils.java
index 475976684..741680c55 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/TrackIconUtils.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/TrackIconUtils.java
@@ -19,6 +19,8 @@ package com.google.android.apps.mytracks.util;
import com.google.android.maps.mytracks.R;
import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Color;
import android.util.Pair;
import java.util.ArrayList;
@@ -27,7 +29,7 @@ import java.util.List;
/**
* Utilities for track icon.
- *
+ *
* @author Jimmy Shih
*/
public class TrackIconUtils {
@@ -43,48 +45,52 @@ public class TrackIconUtils {
private TrackIconUtils() {}
- private static LinkedHashMap>
- map = new LinkedHashMap>();
+ private static LinkedHashMap> map =
+ new LinkedHashMap>();
static {
- map.put(AIRPLANE,
- new Pair(R.string.activity_type_airplane, R.drawable.track_airplane));
+ map.put(RUN, new Pair(R.string.activity_type_running, R.drawable.track_run));
+ map.put(
+ WALK, new Pair(R.string.activity_type_walking, R.drawable.track_walk));
map.put(BIKE, new Pair(R.string.activity_type_biking, R.drawable.track_bike));
- map.put(BOAT, new Pair(R.string.activity_type_boat, R.drawable.track_boat));
map.put(
DRIVE, new Pair(R.string.activity_type_driving, R.drawable.track_drive));
- map.put(RUN, new Pair(R.string.activity_type_running, R.drawable.track_run));
map.put(SKI, new Pair(R.string.activity_type_skiing, R.drawable.track_ski));
map.put(SNOW_BOARDING, new Pair(
R.string.activity_type_snow_boarding, R.drawable.track_snow_boarding));
- map.put(
- WALK, new Pair(R.string.activity_type_walking, R.drawable.track_walk));
+ map.put(AIRPLANE,
+ new Pair(R.string.activity_type_airplane, R.drawable.track_airplane));
+ map.put(BOAT, new Pair(R.string.activity_type_boat, R.drawable.track_boat));
}
- private static int[] airplane = new int[] { R.string.activity_type_airplane,
- R.string.activity_type_commercial_airplane, R.string.activity_type_rc_airplane };
- private static int[] bike = new int[] { R.string.activity_type_biking,
- R.string.activity_type_cycling, R.string.activity_type_dirt_bike,
- R.string.activity_type_motor_bike, R.string.activity_type_mountain_biking,
- R.string.activity_type_road_biking, R.string.activity_type_track_cycling };
- private static int[] boat = new int[] { R.string.activity_type_boat, R.string.activity_type_ferry,
- R.string.activity_type_motor_boating, R.string.activity_type_rc_boat };
- private static int[] drive = new int[] { R.string.activity_type_atv,
- R.string.activity_type_driving, R.string.activity_type_driving_bus,
- R.string.activity_type_driving_car };
- private static int[] run = new int[] { R.string.activity_type_running,
- R.string.activity_type_street_running, R.string.activity_type_track_running,
- R.string.activity_type_trail_running };
- private static int[] ski = new int[] {
- R.string.activity_type_cross_country_skiing, R.string.activity_type_skiing };
- private static int[] snowBoarding = new int[] { R.string.activity_type_snow_boarding };
- private static int[] walk = new int[] { R.string.activity_type_hiking,
+ private static int[] airplane = new int[] {
+ R.string.activity_type_airplane, R.string.activity_type_commercial_airplane,
+ R.string.activity_type_rc_airplane};
+ private static int[] bike = new int[] {R.string.activity_type_biking,
+ R.string.activity_type_cycling,
+ R.string.activity_type_dirt_bike,
+ R.string.activity_type_motor_bike,
+ R.string.activity_type_mountain_biking,
+ R.string.activity_type_road_biking,
+ R.string.activity_type_track_cycling};
+ private static int[] boat = new int[] {R.string.activity_type_boat, R.string.activity_type_ferry,
+ R.string.activity_type_motor_boating, R.string.activity_type_rc_boat};
+ private static int[] drive = new int[] {
+ R.string.activity_type_atv, R.string.activity_type_driving,
+ R.string.activity_type_driving_bus, R.string.activity_type_driving_car};
+ private static int[] run = new int[] {
+ R.string.activity_type_running, R.string.activity_type_street_running,
+ R.string.activity_type_track_running, R.string.activity_type_trail_running};
+ private static int[] ski =
+ new int[] {R.string.activity_type_cross_country_skiing, R.string.activity_type_skiing};
+ private static int[] snowBoarding = new int[] {R.string.activity_type_snow_boarding};
+ private static int[] walk = new int[] {R.string.activity_type_hiking,
R.string.activity_type_off_trail_hiking, R.string.activity_type_speed_walking,
- R.string.activity_type_trail_hiking, R.string.activity_type_walking };
+ R.string.activity_type_trail_hiking, R.string.activity_type_walking};
/**
* Gets the icon drawable.
- *
+ *
* @param iconValue the icon value
*/
public static int getIconDrawable(String iconValue) {
@@ -97,7 +103,7 @@ public class TrackIconUtils {
/**
* Gets the icon activity type.
- *
+ *
* @param iconValue the icon value
*/
public static int getIconActivityType(String iconValue) {
@@ -121,7 +127,7 @@ public class TrackIconUtils {
/**
* Gets the icon value.
- *
+ *
* @param context the context
* @param activityType the activity type
*/
@@ -153,9 +159,37 @@ public class TrackIconUtils {
return "";
}
+ /**
+ * Inverts the colors in a bitmap.
+ *
+ * @param source the source
+ */
+ public static Bitmap invertBitmap(Bitmap source) {
+ Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), source.getConfig());
+ int height = source.getHeight();
+ int width = source.getWidth();
+ int pixelColor;
+ int alpha;
+ int red;
+ int green;
+ int blue;
+
+ for (int y = 0; y < height; y++) {
+ for (int x = 0; x < width; x++) {
+ pixelColor = source.getPixel(x, y);
+ alpha = Color.alpha(pixelColor);
+ red = 255 - Color.red(pixelColor);
+ green = 255 - Color.green(pixelColor);
+ blue = 255 - Color.blue(pixelColor);
+ output.setPixel(x, y, Color.argb(alpha, red, green, blue));
+ }
+ }
+ return output;
+ }
+
/**
* Returns true if the activity type is in the list.
- *
+ *
* @param context the context
* @param activityType the activity type
* @param list the list