Различный размер изображения при просмотре карты на разных экранах - PullRequest
0 голосов
/ 13 октября 2018

Я использую imageview в cardview с утилизатором.Я также создал папки для разных размеров экрана.Он отлично работает для телефонов и планшетов с небольшим экраном, но существует проблема масштабирования с экраном телефона более 5,5 дюймов Screenshot on phone having screen size 5.5 (420dp)

Screenshot on phone having screen size (600dp)

Код выглядит следующим образом:

cardview.xml (420dp)

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:card_view="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">

     <android.support.v7.widget.CardView
         android:id="@+id/card_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center"
         android:layout_margin="15dp"
         android:elevation="3dp"
         card_view:cardCornerRadius="5dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/thumbnail"
            android:layout_width="match_parent"
            android:layout_height="@dimen/album_cover_height"
            android:background="?attr/selectableItemBackgroundBorderless"
            android:clickable="true"
            android:scaleType="fitXY"
            android:src="@drawable/ritu"/>


        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/thumbnail"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp"
            android:textColor="#4c4c4c"
            android:textSize="15dp"
            android:textAlignment="center"/>


            </RelativeLayout>

          </android.support.v7.widget.CardView>

       </LinearLayout>

cardview.xml (600dp)

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:card_view="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">

     <android.support.v7.widget.CardView
         android:id="@+id/card_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center"
         android:layout_margin="15dp"
         android:elevation="3dp"
         card_view:cardCornerRadius="5dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/thumbnail"
            android:layout_width="match_parent"
            android:layout_height="@dimen/album_cover_height"
            android:background="?attr/selectableItemBackgroundBorderless"
            android:clickable="true"
            android:scaleType="fitXY"
            android:src="@drawable/ritu"/>
        <!---->

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/thumbnail"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp"
            android:textColor="#4c4c4c"
            android:textSize="15dp"
            android:textAlignment="center"/>


            </RelativeLayout>

          </android.support.v7.widget.CardView>

       </LinearLayout>

Итак, на втором снимке экрана выможно увидеть изображение scaleType = fitXY не работает.Он работает со всеми различными экранами, включая планшеты, а также с использованием одного и того же кода

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

1) Добавить android: AdjustViewBounds = "true" внутри тега просмотра изображения.

2) Сделать относительное расположение l, ширину и высоту, чтобы обернуть содержимое.

3) (Необязательно)Сделайте тип шкалы для центрирования.

0 голосов
/ 13 октября 2018

Каждый Drawable сохраняется как отдельные файлы в одной из папок res/drawable.Вы должны хранить изображения для разных разрешений в подпапках -mdpi, -hdpi, -xhdpi, -xxhdpi в res/drawable.

Каждый тип ресурса следует размещать в определенном подкаталоге из ваших project's res/ directory.Убедитесь, что вы сделали это правильно или нет.

Вы можете добавить ниже в разделе манифеста

<supports-screens
        android:resizeable="true"
        android:smallScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:normalScreens="true"
        android:anyDensity="true"/>

Читать Support different screen sizes.

...