0

I want to change my marker in google api. so I use "getBitmap" funtion with Picasso but this funtion return "Bitmap?"

.icon(BitmapDescriptorFactory.fromBitmap(getBitmap(user_URL[i]))) -> require "Bitmap" type

So, problem is :

  1. type mismatch error (require : Bitmap, Found : Bitmap?)
  2. java.lang.NullPointerException: image must not be null in same line

How can I solve this problem in kotlin?

code :

private fun getBitmap(url : String) : Bitmap? {

    var bmp : Bitmap ?=null
    Picasso.get().load(url).into(object : com.squareup.picasso.Target {
        override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) {
            bmp =  bitmap
        }

        override fun onPrepareLoad(placeHolderDrawable: Drawable?) {}

        override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) {}
    })
    return bmp
}

private fun otherUserMaker(googleMap: GoogleMap) {

    var latitude = mutableListOf<Double>()
    var longitude = mutableListOf<Double>()
    var user_URL = mutableListOf<String>()enter code here

    user_URL = maprepo.returnImage()
    latitude = maprepo.returnLatitude()
    longitude = maprepo.returnLongitude()

    for (i in 0 until latitude.size step (1)) {

        val makerOptions = MarkerOptions()
        makerOptions
            .position(LatLng(latitude[i], longitude[i]))
            .title("")           .icon(BitmapDescriptorFactory.fromBitmap(getBitmap(user_URL[i])))


        googleMap.addMarker(makerOptions)

      
    }
}

imageURL type mustablearray[String] in firebase

and maprepo image funtion is

fun getImage(boardDTOId: MutableList<String>) {
    for (i in boardDTOId) {
        firestore.collection("Board").document(i).get().addOnSuccessListener {

            if (it != null) {
                photoUrl.add(it["profileUrl"] as String)
            }
        }
    }
}

fun returnImage(): MutableList { return photoUrl }

============================================================================

  • user_URL data set

for (i in 0 until latitude.size step (1)) { Log.e("user_Url", user_URL.toString()) Log.e("user_Url1", user_URL[i]) }

-> Log

021-09-26 03:12:36.810 20861-20861/com.example.myapplication E/user_Url: [https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_195916_.png?alt=media&token=1fbae93b-85d4-447d-a8f8-008110423616, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210922_200319_.png?alt=media&token=b0a27498-382e-4cee-b268-1a7ba89ad0e7]

2021-09-26 03:12:36.810 20861-20861/com.example.myapplication E/user_Url1: https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f

2021-09-26 03:12:36.819 20861-20861/com.example.myapplication E/user_Url: [https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_195916_.png?alt=media&token=1fbae93b-85d4-447d-a8f8-008110423616, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210922_200319_.png?alt=media&token=b0a27498-382e-4cee-b268-1a7ba89ad0e7]

2021-09-26 03:12:36.819 20861-20861/com.example.myapplication E/user_Url1: https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f

2021-09-26 03:12:36.832 20861-20861/com.example.myapplication E/user_Url: [https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_195916_.png?alt=media&token=1fbae93b-85d4-447d-a8f8-008110423616, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210922_200319_.png?alt=media&token=b0a27498-382e-4cee-b268-1a7ba89ad0e7]

2021-09-26 03:12:36.832 20861-20861/com.example.myapplication E/user_Url1: https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_195916_.png?alt=media&token=1fbae93b-85d4-447d-a8f8-008110423616

2021-09-26 03:12:36.843 20861-20861/com.example.myapplication E/user_Url: [https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_202119_.png?alt=media&token=2b35d88f-c748-4faf-bc5b-a809294a4d4f, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210925_195916_.png?alt=media&token=1fbae93b-85d4-447d-a8f8-008110423616, https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210922_200319_.png?alt=media&token=b0a27498-382e-4cee-b268-1a7ba89ad0e7]

2021-09-26 03:12:36.843 20861-20861/com.example.myapplication E/user_Url1: https://firebasestorage.googleapis.com/v0/b/capston-e8850.appspot.com/o/Profiles%2FJPEG_20210922_200319_.png?alt=media&token=b0a27498-382e-4cee-b268-1a7ba89ad0e7

Sweta Jain
  • 3,248
  • 6
  • 30
  • 50
jyk
  • 21
  • 4

1 Answers1

0

short and simple way would be

val bitmap: Bitmap = Picasso.with(context).load(url).get()
Saurabh Dhage
  • 1,478
  • 5
  • 17
  • 31