2017-05-07 36 views
0

我正在使用网格视图在我的应用程序中显示图片,而我正在使用CardView作为父元素。 我希望CardView从页面开始和每个CardView之间有一定的空间,因此我将layout_margin设置为5dp。 我也想在图像和CardView的开始之间留出一些空间,所以我把contentPadding设置为10dp。 结果虽然不是我想要的。看来,layout_margin是推图像本身和右侧的填充不10dp,我想,但10dp - 5DP,我真的不知道如何解决布局页边距在ImageView中推送图片

这里是视觉的例子:

enter image description here

这是结果我得到:

enter image description here

你可以看到CardView的右侧,以及如何将图像没有正确居中。

谢谢你的帮助!

编辑: ImageViewStyle:

<style name="ImageViewStyle"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">@dimen/card_view_image_view_height</item> 
    <item name="android:layout_gravity">center</item> 
    <item name="android:layout_alignParentTop">true</item> 
    <item name="android:scaleType">centerCrop</item> 
</style> 
+0

请提供您的'ImageViewStyle' –

+0

编辑代码 – Binev

+0

请查看下面 –

回答

2

试试这个:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<android.support.v7.widget.CardView 
    android:layout_width="120dp" 
    android:layout_height="120dp" 
    android:layout_margin="5dp" 
    app:cardCornerRadius="2dp"> 


    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:layout_margin="10dp" 
     android:background="@drawable/image"/> 


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

+0

我的回答不,没没有工作。同样的事情发生。右侧再次被推动。 如果我删除layout_margin它是好的,但我需要在卡片视图之间的空间 – Binev

+0

它没有任何意义,我只是试过它,它不会发生在我身边。你是否复制并粘贴了我的答案,整个cardView?你在哪里设置imageView背景? –

+0

这对我来说也很奇怪,因为我使用了另一个视图,它不是网格视图,而是一个回收视图,并且这里不存在任何问题! 我正在使用Glide: 'imageView =(ImageView)row.findViewById(R.id.image); (文件) .into(imageView);' – Binev