Android 不同图像屏幕上的cardview中不同的imageview大小

Android 不同图像屏幕上的cardview中不同的imageview大小,android,imageview,android-cardview,Android,Imageview,Android Cardview,我正在使用cardview中的imageview和recycler。我还为不同的屏幕大小创建了文件夹。它适用于小屏幕手机和平板电脑 但手机屏幕超过5.5英寸时存在缩放问题 代码如下: cardview.xml 420dp <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/re

我正在使用cardview中的imageview和recycler。我还为不同的屏幕大小创建了文件夹。它适用于小屏幕手机和平板电脑 但手机屏幕超过5.5英寸时存在缩放问题

代码如下:

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不工作。它与所有不同的屏幕(包括平板电脑)一起工作,也使用相同的代码

每个可绘制文件作为单个文件存储在一个res/Drawable文件夹中。您应该将不同分辨率的图像存储在res/drawable的-mdpi、-hdpi、-xhdpi、-xxhdpi子文件夹中

您应该将每种类型的资源放在项目的res/目录的特定子目录中。确保你做得正确与否

您可以在清单部分添加以下内容

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

读取。

每个可绘制文件作为单个文件存储在一个res/Drawable文件夹中。您应该将不同分辨率的图像存储在res/drawable的-mdpi、-hdpi、-xhdpi、-xxhdpi子文件夹中

您应该将每种类型的资源放在项目的res/目录的特定子目录中。确保你做得正确与否

您可以在清单部分添加以下内容

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

1添加 android:adjustViewBounds=true 图像视图标记的内部

2制作相对布局l、宽度和高度,以包装内容

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

1添加 android:adjustViewBounds=true 图像视图标记的内部

2制作相对布局l、宽度和高度,以包装内容


3可选将缩放类型设置为centercrop。

您应该为不同的屏幕进行设计,但不能获得准确的屏幕大小。正如你可以检查代码,它的两个屏幕。我已经设计了4个不同的屏幕默认值,360dp,420dp,560dp,720dp。你应该为不同的屏幕设计我设计了,但没有得到确切的屏幕大小。正如你可以检查代码,它的两个屏幕。我已经设计了4个不同的屏幕默认,360dp,420dp,560dp,720dp.Thanx的帮助。我正在从服务器下载所有图像,然后如何将它们放在drawable文件夹中。请进一步帮助我。@PranshuK如果您使用ConstantLayout会更好@PranshuK我正在从服务器下载所有图像,那么如果您的图像来自服务器端,我如何将它们放入drawable文件夹中,然后不存储它。@PranshuK在imageview android:adjustViewBounds=trueandroid:scaleType中添加以下属性=fitXY@IntelliJAmiya:供参考,您和我参与的一个评论线程正在元站点中讨论:Thanx寻求帮助。我正在从服务器下载所有图像,然后如何将它们放在drawable文件夹中。请进一步帮助我。@PranshuK如果您使用ConstantLayout会更好@PranshuK我正在从服务器下载所有图像,那么如果您的图像来自服务器端,我如何将它们放入drawable文件夹中,然后不存储它。@PranshuK在imageview android:adjustViewBounds=trueandroid:scaleType中添加以下属性=fitXY@IntelliJAmiya:供参考,你和我参与的一个评论帖子正在元站点上讨论:感谢你的帮助!但是它在cardwiew.xml 600dp上不起作用。我应该更改屏幕大小吗?adjustViewbounds可以帮助您在任何设备上获得正确的图像分辨率,即使您不会为每个设备创建单独的可绘制文件夹。如果已经得到了预期的结果,可以跳过此操作。谢谢你,谢谢你的帮助!但是它在cardwiew.xml 600dp上不起作用。我应该更改屏幕大小吗?adjustViewbounds可以帮助您在任何设备上获得正确的图像分辨率,即使您不会为每个设备创建单独的可绘制文件夹。如果已经得到了预期的结果,可以跳过此操作。非常感谢。