在不同图像屏幕上的Cardview中的不同imageview大小

时间:2018-10-13 06:36:26

标签: android imageview android-cardview

我正在使用回收站在cardview中使用imageview。我还为不同的屏幕尺寸创建了文件夹。适用于小屏幕手机和平板电脑 但是手机屏幕超过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>

因此,在第二个屏幕截图中,您可以看到image scaleType = fitXY无法正常工作。它可以使用相同的代码在包括平板电脑在内的所有不同屏幕上使用

2 个答案:

答案 0 :(得分:5)

每个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

答案 1 :(得分:1)

1)添加 android:adjustViewBounds =“ true” 在图片视图标签中。

2)设置相对的布局l,宽度和高度以包装内容。

3)(可选)将比例类型设置为中心裁剪。