Внутри onMapReady Picasso не загружает изображение в первый раз и загружает изображение после воссоздания действия - PullRequest
0 голосов
/ 04 мая 2019

Пикассо используется в приложении и работает нормально, за исключением случаев, когда я использую его внутри onMapReady для загрузки изображений маркеров и не работает в первый раз.Вот мой код:

   @Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;


    mMap.getUiSettings().setZoomControlsEnabled(true);
    mMap.getUiSettings().setMyLocationButtonEnabled(true);

    // Add a marker and move the camera
    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(Double.parseDouble(sharedPreferences.getString("CurntLatitude","24.74")),Double.parseDouble(sharedPreferences.getString("CurntLongitude","46.61"))),14));
    get_seller_user();




} 

публичный маркер createMarker (макет int, двойная широта, двойная долгота, String profile_img, логические delivery_sevices, логические events_services, String id) {

    View marker = ((LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(layout, null);

     markerImage =  marker.findViewById(R.id.user_dp);
    ImageView online_status =  marker.findViewById(R.id.online_status);
    ImageView events =  marker.findViewById(R.id.for_group_img);
    ImageView delivery =  marker.findViewById(R.id.can_deliver_img);

    if(events_services){
    events.setVisibility(View.VISIBLE);}
    if(delivery_sevices){
    delivery.setVisibility(View.VISIBLE);}


    //picaso for loade image
    Picasso.with(getActivity()).load(profile_img).into(markerImage);





    DisplayMetrics displayMetrics = new DisplayMetrics();
    getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);



    marker.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    marker.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
    marker.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
    marker.buildDrawingCache();
    Bitmap bitmap = Bitmap.createBitmap(marker.getMeasuredWidth(), marker.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    marker.draw(canvas);



    return mMap.addMarker(new MarkerOptions()
            .position(new LatLng(latitude,longitude)).icon(BitmapDescriptorFactory.fromBitmap(bitmap)).title(id));


}




public  void get_seller_user() {

    Query Query = database.orderByChild("acount_type").equalTo("seller");
    Query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Users users;
            for (DataSnapshot Snapshot: dataSnapshot.getChildren()) {
                 users = Snapshot.getValue(Users.class);
                 createMarker(R.layout.custom_marker,Double.parseDouble(users.getLatitude()),Double.parseDouble(users.getLongitude()),users.getProfile_img(),users.isDelivery_sevices(),users.isEvents_services(),users.getUser_id());
            }

        }
            @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.e(TAG, "onCancelled", databaseError.toException());

        }

    });

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...