Когда я пытаюсь нарисовать свой вид на растровом холсте (включая: просмотр карты и изображение), загруженное скользящее изображение не отображается в окончательном растровом изображении, я специально вызываю свой метод в прослушивателе успеха скольжения, чтобы уточнить мое изображение загружен в представление, но, тем не менее, я не получаю изображение, отображаемое в окончательном растровом изображении (только цветное изображение карты).
Вот мой код для загрузки изображения в viewview:
View marker = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.mapelement, null);
ImageView markerImage = (ImageView) marker.findViewById(R.id.imageView);
CardView cardView = marker.findViewById(R.id.cardview);
Glide.with(getActivity())
.using(new FirebaseImageLoader())
.load(mStorageRef.child("images").child("profilepicture1"))
.listener(new RequestListener<StorageReference, GlideDrawable>() {
@Override
public boolean onException(Exception e, StorageReference model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, StorageReference model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
cardView.setCardBackgroundColor(Color.parseColor(somecolor));
LatLng markerlocation = new LatLng(somelat, somelong);
mMap.addMarker(new MarkerOptions().position(markerlocation).
icon(BitmapDescriptorFactory.fromBitmap(
loadBitmapFromView(marker)))).setTitle("new marker");
return true;
}
})
.into(markerImage);
для преобразования вида в растровое изображение:
public static Bitmap loadBitmapFromView(View v) {
v.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
v.draw(c);
return b;
}