如何在 android 中将 google 地图标记颜色更改为灰色
How to change the google maps marker color to grey in android
我已经知道的事情
- 1) 创建 MarkerOptions 对象。
- 2) 使用
object.icon(BitmapDescriptorFactory.defaultMarker(<color value>));
- 3) 颜色值为色相颜色值。 Google(HUE.BLUE、HUE.AZURE 等)
指定了一些标准颜色值
- 4) 要获得所需的颜色,请在 0 到 360 之间选择一个值。0 是红色,90 是青色,270 是紫色
我需要什么?
这个特定的灰色浮点值
我的研究:Color wheel
灰色不包含在 HUE 颜色中。它在语气中。那么如何访问色调中的颜色值。
没有可用的灰色作为色调。所以一种方法是抓取一个标记 png 并修改为灰色(外部),就像在这个快照中一样(这是所有色调加上顶部的特殊灰色)。从资源创建 BitmapDescriptor:
(对于灰色 png,将透明颜色设置为白色。)
相关代码(非必填):
public void createMarkers() {
LatLng pos = new LatLng(38.547279, -121.46101);
for (int i = 0; i < 360; i++) {
mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.defaultMarker(i)).position(pos));
double lat = pos.latitude;
double lng = pos.longitude;
lng += 0.01;
if ((i + 1) % 40 == 0) {
lng = -121.46101;
lat = pos.latitude + 0.01;
}
pos = new LatLng(lat,lng);
}
double lat = pos.latitude + 0.01;
pos = new LatLng(lat, pos.longitude);
BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker);
mMap.addMarker(new MarkerOptions().icon(bd).position(pos));
}
- 找到 Google 的现有地图图标之一 - 可能是 .png。
- 把它放到你的系统上,然后用你的图形程序改变它。 GIMP。不要失去它的透明度。
- 根据 Android Studio 的命名规则保存它 - 即。没有连字符。
- 在 Android Studio 中,右键单击 res/drawable 文件夹。
- 单击“在资源管理器中显示”。
- 进入可绘制文件夹。
- Copy/paste 将您的新图标放入 res/drawable 文件夹 - 不要担心它是 .png 文件而文件夹中的其他文件是 .xml 文件。
- 关闭资源管理器Window。
- 要在您的应用中使用 - 假设文件名为 gray_dot.png:
mMarkerOptions.position(beachCoord).title("marker title").snippet("marker info").icon(BitmapDescriptorFactory.fromResource(R.drawable.gray_dot));
当您键入 R.drawable.gr... - 它显示时没有 .png 扩展名。
运行 您的应用。基本测试表明图标大小适用于平板电脑并且 phone 很好,无需担心不同的分辨率。我将进行更多测试,以了解这对于更高的分辨率仍然适用。
对于我们这些真正想要使用现有色调的人,您可以这样做:
fun MapFragment.addGreenMarker(latLng: LatLng) {
getMap()?.apply {
addMarker(
MarkerOptions()
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))
.position(latLng)
.draggable(true)
)
}
}
我已经知道的事情
- 1) 创建 MarkerOptions 对象。
- 2) 使用
object.icon(BitmapDescriptorFactory.defaultMarker(<color value>));
- 3) 颜色值为色相颜色值。 Google(HUE.BLUE、HUE.AZURE 等) 指定了一些标准颜色值
- 4) 要获得所需的颜色,请在 0 到 360 之间选择一个值。0 是红色,90 是青色,270 是紫色
我需要什么? 这个特定的灰色浮点值
我的研究:Color wheel 灰色不包含在 HUE 颜色中。它在语气中。那么如何访问色调中的颜色值。
没有可用的灰色作为色调。所以一种方法是抓取一个标记 png 并修改为灰色(外部),就像在这个快照中一样(这是所有色调加上顶部的特殊灰色)。从资源创建 BitmapDescriptor:
(对于灰色 png,将透明颜色设置为白色。)
相关代码(非必填):
public void createMarkers() {
LatLng pos = new LatLng(38.547279, -121.46101);
for (int i = 0; i < 360; i++) {
mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.defaultMarker(i)).position(pos));
double lat = pos.latitude;
double lng = pos.longitude;
lng += 0.01;
if ((i + 1) % 40 == 0) {
lng = -121.46101;
lat = pos.latitude + 0.01;
}
pos = new LatLng(lat,lng);
}
double lat = pos.latitude + 0.01;
pos = new LatLng(lat, pos.longitude);
BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker);
mMap.addMarker(new MarkerOptions().icon(bd).position(pos));
}
- 找到 Google 的现有地图图标之一 - 可能是 .png。
- 把它放到你的系统上,然后用你的图形程序改变它。 GIMP。不要失去它的透明度。
- 根据 Android Studio 的命名规则保存它 - 即。没有连字符。
- 在 Android Studio 中,右键单击 res/drawable 文件夹。
- 单击“在资源管理器中显示”。
- 进入可绘制文件夹。
- Copy/paste 将您的新图标放入 res/drawable 文件夹 - 不要担心它是 .png 文件而文件夹中的其他文件是 .xml 文件。
- 关闭资源管理器Window。
- 要在您的应用中使用 - 假设文件名为 gray_dot.png: mMarkerOptions.position(beachCoord).title("marker title").snippet("marker info").icon(BitmapDescriptorFactory.fromResource(R.drawable.gray_dot));
当您键入 R.drawable.gr... - 它显示时没有 .png 扩展名。
运行 您的应用。基本测试表明图标大小适用于平板电脑并且 phone 很好,无需担心不同的分辨率。我将进行更多测试,以了解这对于更高的分辨率仍然适用。
对于我们这些真正想要使用现有色调的人,您可以这样做:
fun MapFragment.addGreenMarker(latLng: LatLng) {
getMap()?.apply {
addMarker(
MarkerOptions()
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))
.position(latLng)
.draggable(true)
)
}
}