我正在使用回收站在cardview中使用imageview。我还为不同的屏幕尺寸创建了文件夹。适用于小屏幕手机和平板电脑 但是手机屏幕超过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>
因此,在第二个屏幕截图中,您可以看到image scaleType = fitXY无法正常工作。它可以使用相同的代码在包括平板电脑在内的所有不同屏幕上使用
答案 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"/>
答案 1 :(得分:1)
1)添加 android:adjustViewBounds =“ true” 在图片视图标签中。
2)设置相对的布局l,宽度和高度以包装内容。
3)(可选)将比例类型设置为中心裁剪。