refactor: merge BitmapUtils.createBitmap() into CanvasAdapter

This commit is contained in:
Hannes Janetzek 2013-09-15 17:36:22 +02:00
parent 0f52eff9c9
commit 8fe8c3a1f2
6 changed files with 27 additions and 53 deletions

View File

@ -17,7 +17,6 @@ package org.oscim.android.canvas;
import java.io.IOException;
import java.io.InputStream;
import org.oscim.backend.BitmapUtils;
import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.canvas.Bitmap;
import org.oscim.backend.canvas.Canvas;
@ -49,7 +48,7 @@ public final class AndroidGraphics extends CanvasAdapter {
@Override
public Bitmap loadBitmapAsset(String fileName) {
try {
return BitmapUtils.createBitmap(fileName);
return createBitmap(fileName);
} catch (IOException e) {
e.printStackTrace();
}

View File

@ -17,7 +17,6 @@ package org.oscim.android.canvas;
import java.io.IOException;
import java.io.InputStream;
import org.oscim.backend.BitmapUtils;
import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.canvas.Bitmap;
import org.oscim.backend.canvas.Canvas;
@ -120,7 +119,7 @@ public final class AndroidGraphics extends CanvasAdapter {
@Override
public Bitmap loadBitmapAsset(String fileName) {
try {
return BitmapUtils.createBitmap(fileName);
return createBitmap(fileName);
} catch (IOException e) {
e.printStackTrace();
}

View File

@ -8,10 +8,9 @@ import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.canvas.Bitmap;
import org.oscim.backend.canvas.Canvas;
import org.oscim.backend.BitmapUtils;
import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.canvas.Paint;
public class AwtGraphics extends CanvasAdapter {
@ -90,7 +89,7 @@ public class AwtGraphics extends CanvasAdapter {
@Override
public Bitmap loadBitmapAsset(String fileName) {
try {
return BitmapUtils.createBitmap(fileName);
return createBitmap(fileName);
} catch (IOException e) {
e.printStackTrace();
}

View File

@ -1,41 +0,0 @@
/*
* Copyright 2013 Hannes Janetzek
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.backend;
import java.io.IOException;
import java.io.InputStream;
import org.oscim.backend.canvas.Bitmap;
public final class BitmapUtils {
public static Bitmap createBitmap(String src) throws IOException {
if (src == null || src.length() == 0) {
// no image source defined
return null;
}
InputStream inputStream = AssetAdapter.g.openFileAsStream(src);
if (inputStream == null)
throw new IllegalArgumentException("invalid bitmap source: " + src);
Bitmap bitmap = CanvasAdapter.g.decodeBitmap(inputStream);
inputStream.close();
return bitmap;
}
private BitmapUtils() {
}
}

View File

@ -15,6 +15,7 @@
*/
package org.oscim.backend;
import java.io.IOException;
import java.io.InputStream;
import org.oscim.backend.canvas.Bitmap;
@ -23,6 +24,8 @@ import org.oscim.backend.canvas.Paint;
public abstract class CanvasAdapter {
protected static final String TAG = CanvasAdapter.class.getName();
public static CanvasAdapter g;
public static float dpi = 240;
@ -45,4 +48,21 @@ public abstract class CanvasAdapter {
public abstract Bitmap getBitmap(int width, int height, int format);
public abstract Canvas getCanvas();
protected static Bitmap createBitmap(String src) throws IOException {
if (src == null || src.length() == 0) {
// no image source defined
return null;
}
InputStream inputStream = AssetAdapter.g.openFileAsStream(src);
if (inputStream == null){
Log.e(TAG, "invalid bitmap source: " + src);
return null;
}
Bitmap bitmap = CanvasAdapter.g.decodeBitmap(inputStream);
inputStream.close();
return bitmap;
}
}

View File

@ -14,9 +14,7 @@
*/
package org.oscim.renderer.test;
import java.io.IOException;
import org.oscim.backend.BitmapUtils;
import org.oscim.backend.CanvasAdapter;
import org.oscim.core.MapPosition;
import org.oscim.renderer.ElementRenderer;
import org.oscim.renderer.MapRenderer.Matrices;
@ -34,8 +32,8 @@ public class SymbolRenderLayer extends ElementRenderer {
it.billboard = false;
try {
it.bitmap = BitmapUtils.createBitmap("jar:symbols/cafe.png");
} catch (IOException e) {
it.bitmap = CanvasAdapter.g.loadBitmapAsset("jar:symbols/cafe.png");
} catch (Exception e) {
e.printStackTrace();
}