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");
|
log.error("No base layer set");
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
}
|
}
|
||||||
|
setTheme(ThemeLoader.load(theme));
|
||||||
|
}
|
||||||
|
|
||||||
IRenderTheme t = ThemeLoader.load(theme);
|
public void setTheme(IRenderTheme theme) {
|
||||||
if (t == null) {
|
if (mBaseLayer == null) {
|
||||||
|
log.error("No base layer set");
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (theme == null) {
|
||||||
log.error("Invalid theme");
|
log.error("Invalid theme");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mBaseLayer.setRenderTheme(t);
|
mBaseLayer.setRenderTheme(theme);
|
||||||
MapRenderer.setBackgroundColor(t.getMapBackground());
|
MapRenderer.setBackgroundColor(theme.getMapBackground());
|
||||||
|
|
||||||
clearMap();
|
clearMap();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,7 +44,7 @@ public class ExternalRenderTheme implements ThemeFile {
|
|||||||
|
|
||||||
File themeFile = new File(fileName);
|
File themeFile = new File(fileName);
|
||||||
if (!themeFile.exists()) {
|
if (!themeFile.exists()) {
|
||||||
throw new ThemeException("file does not exist: " + fileName);
|
throw new ThemeException("file does not exist: " + themeFile.getAbsolutePath());
|
||||||
} else if (!themeFile.isFile()) {
|
} else if (!themeFile.isFile()) {
|
||||||
throw new ThemeException("not a file: " + fileName);
|
throw new ThemeException("not a file: " + fileName);
|
||||||
} else if (!themeFile.canRead()) {
|
} else if (!themeFile.canRead()) {
|
||||||
|
|||||||
@ -42,22 +42,25 @@ public class ThemeLoader {
|
|||||||
|
|
||||||
public static IRenderTheme load(ThemeFile theme) throws ThemeException {
|
public static IRenderTheme load(ThemeFile theme) throws ThemeException {
|
||||||
|
|
||||||
InputStream inputStream = null;
|
|
||||||
try {
|
try {
|
||||||
inputStream = theme.getRenderThemeAsStream();
|
InputStream is = theme.getRenderThemeAsStream();
|
||||||
IRenderTheme t = XmlThemeBuilder.read(inputStream);
|
return load(is);
|
||||||
|
|
||||||
if (t != null)
|
|
||||||
t.scaleTextSize(CanvasAdapter.textScale + (CanvasAdapter.dpi / 240 - 1) * 0.5f);
|
|
||||||
|
|
||||||
return t;
|
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
} finally {
|
|
||||||
IOUtils.closeQuietly(inputStream);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
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