删除Android中的ImageView边框

删除Android中的ImageView边框,android,imageview,Android,Imageview,我正在制作一个使用卡片显示信息的应用程序,我希望在卡片的左侧有一个图像。我遇到的问题是,出于某种原因,我在左侧插入的ImageView被填充到了所有侧面 在网上搜索之后,我发现stackoverflow上的许多帖子都在问同样的问题,他们都被告知使用以下代码来解决问题: android:adjustViewBounds="true" 并简单地将其添加到xml中的ImageView中。我试过了,但填充物仍然存在。我已经将图像视图的背景色设置为灰绿色,以显示填充区域 以下是我的卡片XML代码: &l

我正在制作一个使用卡片显示信息的应用程序,我希望在卡片的左侧有一个图像。我遇到的问题是,出于某种原因,我在左侧插入的ImageView被填充到了所有侧面

在网上搜索之后,我发现stackoverflow上的许多帖子都在问同样的问题,他们都被告知使用以下代码来解决问题:

android:adjustViewBounds="true"
并简单地将其添加到xml中的ImageView中。我试过了,但填充物仍然存在。我已经将图像视图的背景色设置为灰绿色,以显示填充区域

以下是我的卡片XML代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_margin="2dp"
    android:clickable="true"
    android:foreground="?android:attr/selectableItemBackground"
    card_view:cardCornerRadius="5dp"
    >

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

        <ImageView
            android:id="@+id/drinkImage"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:background="#00FF00"
            android:gravity="left"
            />

        <TextView
            android:padding="8dp"
            android:id="@+id/drinkName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="24sp"
            android:layout_toRightOf="@+id/drinkImage"
            />

        <TextView
            android:padding="8dp"
            android:id="@+id/drinkDesc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/drinkName"
            android:layout_toRightOf="@+id/drinkImage"
            />

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

绿色的“边框”不是边框,而是您使用
android:background=“#00FF00”
设置的
ImageView
的背景。在
图像视图上
绘制图像。图像比率与
ImageView
s宽度和高度不匹配,或者图像宽度或高度小于
ImageView
s宽度或高度。在这种情况下,
ImageView
的默认行为是将图像居中放置在
ImageView
中。因此你看到了空间。您可以使用
android:scaleType
指定行为。看。否则,您可以调整
ImageView
s的宽度和高度以匹配图像的宽度和高度

更新: 哦,对不起,我没有注意到您正在使用
cardwiew

根据文件,这是设计的:

由于圆角剪裁的昂贵性质,在L之前的平台上,CardView不会剪裁与圆角相交的子对象。相反,它添加了填充以避免这种交叉(请参见setPreventCornerOverlap(布尔值)以更改此行为)


有关更多信息,请参阅。

好的,我右键单击drawable/并单击new->image asset,将图像资源添加到项目中。我没有意识到这实际上是裁剪和调整图像大小,因为我显然不知道图像资产创建者的正确用法


要将.PNG文件添加到项目中,我只需从Finder(相当于Windows资源管理器的Mac)复制图像文件,并将它们粘贴到Android Studio中的drawables文件夹中,一切都会完美完成。真是个愚蠢的错误

您是否尝试过在图像视图中使用
android:scaleType
属性
android:scaleType=“centerCrop”
可能会执行您尝试的技巧
android:layout\u width=“100dp”
android:layout\u height=“100dp”
而不是
匹配父项。并尝试删除
android:foreground
?将
android:scaleType
设置为不同的值不会改变任何事情,手动设置布局宽度和高度也不会改变,甚至设置为高于100dp的值。我真的不确定如何处理
android:front
边框实际上是图像的一部分吗?i、 在PNG的边缘有一条透明的像素。不,我确保了这一点,并且尝试了多张不同的图片,每次我都会得到相同的边框。我的问题是,我希望图像填充整个图像视图,除了图像之外,不应该有额外的背景边框。绿色是我放在那里用来说明我想用图像填充的区域,即不是空的。我使用的图像非常大,我不知道为什么它会使它变小,然后故意在
ImageView
和原始图像的纵横比(宽:高)周围添加一个边框相同?设置
android:scaleType=“fitXY”
(在宽度和高度上完全填充图像视图,但图像将被拉伸,可能看起来很奇怪)或使用
android:scaleType=“centerCrop”
(图像将被裁剪,以便适合
ImageView
,但图像的某些像素在裁剪(剪切)时不会显示出来)android这样做很有意思,但是文档中说:“在API 21和更高版本上设置这个值没有任何效果,除非您启用了兼容性填充。”我使用的是API 21,所以这本来就不应该发生,这可能与我使用的是AppCompat主题有关吗?如果不是,如何启用/禁用兼容性填充?