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