Как правильно масштабировать импортированное изображение в соответствии с ImageView?

#android #image #imageview #uri #scaling

Вопрос:

В своем приложении я импортирую и отображаю множество изображений. Чтобы установить uri img, который я использую Img.setImageUri(R.mipmap.myimage) , но в результате изображение обрабатывается определенным устройством способом, например, на моем телефоне у меня есть квадратные значки приложений, а макет выглядит так

таким образом, он имеет квадратную форму, а на эмуляторе с круглыми значками он выглядит так

введите описание изображения здесь

так что это в форме круга

Что я хочу, так это изменить размер изображений, чтобы они соответствовали изображениям
, Изображения хранятся в базе данных в виде uri, поэтому мне нужно получить результат на основе этого.

мой xml для этого

 <?xml version="1.0" encoding="utf-8"?>
    <androidx.cardview.widget.CardView
        android:layout_height="120dp"
        android:id="@ id/foodlay"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:cardElevation="10dp"
        app:cardCornerRadius="20dp"
        android:layout_width="120dp"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <ImageButton
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"
            android:id="@ id/imago"
            android:background="@null"
            />

    </androidx.cardview.widget.CardView>
 

В коде я просто использую Img.setImageUri(cursor.getString(6)) адаптер

Ответ №1:

я предлагаю вам использовать ShapeableImageView вместо этого, однако, если вы хотите использовать свое решение, замените это

 android:scaleType="centerCrop"
 

недвижимость вместо центра