add Map.setTheme(IRenderTheme)
This commit is contained in:
parent
913afab264
commit
6113d284d8
@ -151,15 +151,22 @@ public abstract class Map {
|
||||
log.error("No base layer set");
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
setTheme(ThemeLoader.load(theme));
|
||||
}
|
||||
|
||||
IRenderTheme t = ThemeLoader.load(theme);
|
||||
if (t == null) {
|
||||
public void setTheme(IRenderTheme theme) {
|
||||
if (mBaseLayer == null) {
|
||||
log.error("No base layer set");
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
if (theme == null) {
|
||||
log.error("Invalid theme");
|
||||
return;
|
||||
}
|
||||
|
||||
mBaseLayer.setRenderTheme(t);
|
||||
MapRenderer.setBackgroundColor(t.getMapBackground());
|
||||
mBaseLayer.setRenderTheme(theme);
|
||||
MapRenderer.setBackgroundColor(theme.getMapBackground());
|
||||
|
||||
clearMap();
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@ public class ExternalRenderTheme implements ThemeFile {
|
||||
|
||||
File themeFile = new File(fileName);
|
||||
if (!themeFile.exists()) {
|
||||
throw new ThemeException("file does not exist: " + fileName);
|
||||
throw new ThemeException("file does not exist: " + themeFile.getAbsolutePath());
|
||||
} else if (!themeFile.isFile()) {
|
||||
throw new ThemeException("not a file: " + fileName);
|
||||
} else if (!themeFile.canRead()) {
|
||||
|
||||
@ -42,22 +42,25 @@ public class ThemeLoader {
|
||||
|
||||
public static IRenderTheme load(ThemeFile theme) throws ThemeException {
|
||||
|
||||
InputStream inputStream = null;
|
||||
try {
|
||||
inputStream = theme.getRenderThemeAsStream();
|
||||
IRenderTheme t = XmlThemeBuilder.read(inputStream);
|
||||
|
||||
if (t != null)
|
||||
t.scaleTextSize(CanvasAdapter.textScale + (CanvasAdapter.dpi / 240 - 1) * 0.5f);
|
||||
|
||||
return t;
|
||||
InputStream is = theme.getRenderThemeAsStream();
|
||||
return load(is);
|
||||
} catch (FileNotFoundException e) {
|
||||
log.error(e.getMessage());
|
||||
} finally {
|
||||
IOUtils.closeQuietly(inputStream);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static IRenderTheme load(InputStream inputStream) throws ThemeException {
|
||||
|
||||
try {
|
||||
IRenderTheme t = XmlThemeBuilder.read(inputStream);
|
||||
if (t != null)
|
||||
t.scaleTextSize(CanvasAdapter.textScale + (CanvasAdapter.dpi / 240 - 1) * 0.5f);
|
||||
return t;
|
||||
} finally {
|
||||
IOUtils.closeQuietly(inputStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user