package mil.nga.giat.asam.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.List; import mil.nga.giat.asam.R; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; public class AsamUtils { public static String readStream(InputStream stream) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(stream)); StringBuilder contents = new StringBuilder(); String line; while ((line = in.readLine()) != null) { contents.append(line); } return contents.toString(); } public static boolean isEmpty(String string) { if (string == null || string.trim().equals("")) { return true; } return false; } public static String getCommaSeparatedStringFromIntegerList(List<Integer> mIntegers) { StringBuilder text = new StringBuilder(); for (int i = 0; i < mIntegers.size(); i++) { text.append(mIntegers.get(i)); if (i < mIntegers.size() - 1) { text.append(", "); } } return text.toString(); } public static Bitmap drawNumberOnClusterMarker(Context context, int number) { String numberOfPoints = "" + number; float scale = context.getResources().getDisplayMetrics().density; Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_cluster); Bitmap.Config bitmapConfig = bitmap.getConfig(); if (bitmapConfig == null) { bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888; } bitmap = bitmap.copy(bitmapConfig, true); Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(Color.rgb(255, 255, 255)); paint.setTextSize((int)(AsamConstants.CLUSTER_TEXT_POINT_SIZE * scale)); Rect bounds = new Rect(); paint.getTextBounds(numberOfPoints, 0, numberOfPoints.length(), bounds); int centerX = (bitmap.getWidth() - bounds.width()) / 2; int centerY = (bitmap.getHeight() + bounds.height()) / 2; canvas.drawText(numberOfPoints, centerX, centerY, paint); return new BitmapDrawable(context.getResources(), bitmap).getBitmap(); } }