У меня проблемы с загрузкой изображения, выбранного пользователем, из его внутреннего хранилища, потому что оно загружает только белый пустой экран.
Проблема в том, что это происходит на моем Samsung Galaxy Duos (модель SM-G360HU), который android ver равен 4.4.4 или kitkat. При использовании моего Sony XPERIA xa1 с версией android. 8.0.0 или Oreo, работает нормально.
Снимки экрана:
Перед тем, как пользователь выберет свою фотографию
После того, как пользователь выбрал свою фотографию
Мой код
private fun setProfilePicture(){
val intent = Intent(Intent.ACTION_PICK)
intent.type = "image/*"
startActivityForResult(intent, 0)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 0 && resultCode == Activity.RESULT_OK && data != null) {
selectedPhotoUri = data.data
Glide.with(this).load(data.data).fitCenter().into(profileImage_Register)
//Or using Picasso
Picasso.get().load(data.data).fit().into(profileImage_Register)
}
}
XML:
<androidx.cardview.widget.CardView
android:id="@+id/user_profile_RA"
android:layout_width="0dp"
android:layout_height="180dp"
android:layout_margin="8sp"
app:cardCornerRadius="10dp"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView">
<ImageView
android:id="@+id/profileImage_Register"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:src="@drawable/profile_icon_register" />
</androidx.cardview.widget.CardView>
Версии Picasso и Glide, которые я использую:
//Picasso
implementation 'com.squareup.picasso:picasso:2.71828'
//Glide
implementation 'com.github.bumptech.glide:glide:4.10.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'