我在可绘制文件夹中有一个图标图像,我将其设置为地图标记图标,但我需要在现有标记click to See the white portion of the image(1st)上方将图像设置为我要显示图像的位置(2nd) this image to be shown on that previous white portion of that 1st image
*第一张图片是自定义标记,它是静态的,我从drawable文件夹中获取它。
*第二个是我从网络服务网站获取的简单图片。**
LatLng userPosition = new LatLng(
Double.parseDouble(item.latitude),
Double.parseDouble(item.longitude));
googleMap.addMarker(new MarkerOptions()
.position(userPosition)
.title(item.vendorname)
.snippet("Service : " + item.category_name)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.location_pin))
以上代码用于查看地图上的标记图标。但我需要在其上方显示另一个图像。所以我通过网络服务获取网址(如下所示)。
try {
URL url = new URL(CommonUtilities.Thumb_Call+ item.vendor_icon);
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
bmp = BitmapFactory.decodeFile(String.valueOf(url));
}
catch (Exception e)
{
e.printStackTrace();
}
请帮我将图片设置在来自网址的标记上方。
答案 0 :(得分:0)
此问题可以通过以下方式解决:
首先创建custom_marker_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/markertoemp"
tools:ignore="VectorDrawableCompat" />
<ImageView
android:id="@+id/inside"
android:layout_width="32.25dp"
android:layout_height="32.25dp"
android:layout_centerInParent="true"
android:layout_marginBottom="22dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="@+id/imageView4"
app:layout_constraintEnd_toEndOf="@+id/imageView4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/imageView4"
app:srcCompat="@drawable/ic_delevery_primary"
tools:ignore="MissingConstraints,VectorDrawableCompat" />
</android.support.constraint.ConstraintLayout>
现在转到Java并放置以下方法:
private void setUpMap(final EmpMarker emp) {
LatLng empLatLog = new LatLng(emp.getLatitude(), emp.getLongitude());
View marker = ((LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.lyout.custom_marker_layout, null);
ImageView imageView = marker.findViewById(R.id.inside);
GlideApp.with(activity).load(URLs.Glide_URL + imgeSub).apply(RequestOptions.circleCropTransform()).into(imageView);
new Handler().postDelayed(() -> {
customMarker = mMap.addMarker(new MarkerOptions()
.position(empLatLog)
.icon(BitmapDescriptorFactory.fromBitmap(createDrawableFromView(marker))));
customMarker.setTag(emp);
}, 10);
}
祝你好运:)