2012-04-13 54 views
0

我想要完成的只是在我的imageview周围创建一个小的2-4dp填充边框。结果(看起来是正确的ADT,但是这是它看起来像一个设备上):如何使imageview在另一个视图中正确居中以制作边框?

enter image description here

注意到有在顶部5像素,左/右/底部7 PX空间(这是华电国际装置)

这是我的行XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:paddingTop="2dp"> 
    <RelativeLayout 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@android:color/white" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true"> 
     <ImageView 
      android:src="@android:color/black" 
      android:id="@+id/row_image" 
      android:scaleType="centerCrop" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_margin="4dp" 
      android:layout_centerInParent="true"/> 
    </RelativeLayout> 
</RelativeLayout> 

我已经tryed一切:Adjustviewbounds,centerCrop,WRAP_CONTENT,match_parent,中心,centerInside,高度= 46 /宽度= 46,。任何新的建议将不胜感激,layout_gravity = center。

编辑新信息:所以我tryed去除机器人:layout_alignParentRight =“真”和android:layout_centerVertical =“true”和现在填充/保证金看起来是正确的,但它不是放置在右侧。

+0

删除**机器人:scaleType = “centerCrop” **和**的android:layout_centerInParent = “真” **,我不认为他们需要你的时候有** match_parent ** – ngesh 2012-04-13 08:32:58

+0

是的,但给顶部填充/边距不正确的问题。 – Warpzit 2012-04-13 08:52:41

+0

看到这个http://sackoverflow.com/questions/1521640/standard-android-button-with-a-different-color – ngesh 2012-04-13 08:57:44

回答

0

所以culprint是android:layout_centerVertical =“true”。它以某种方式移动布局,使其居中不正确。

1

试试这个:

做一个绘制XML(bg.xml)与ShapeDrawable。纯色白色和边框黑色。然后将其添加为ImageView的背景并将ImageView的填充设置为2dp。这应该是好的。不需要ReletiveLayouts ..

希望这会有所帮助!

+1

这张图片给出了与上述相同的结果,用纯色填充了所有忽略填充的颜色。所以仍然没有解决方案 – Warpzit 2012-04-13 08:48:57

+0

感谢您的建议,以简化布局hierachy :) – Warpzit 2012-04-13 09:06:59

0

请检查:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="right|center_vertical" > 

    <RelativeLayout 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@android:color/white" 
     android:layout_margin="5sp" 
     android:padding="5sp" > 

     <ImageView 
      android:id="@+id/row_image" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:src="@android:color/black" /> 
    </RelativeLayout> 

</RelativeLayout> 

希望你寻找这个如果没有的话告诉你,你到底是什么做的。 谢谢。

+0

感谢您的建议,可能会工作,因为android:layout_centerVertical =“true”已被删除(请参阅我自己的答案)。 – Warpzit 2012-04-13 12:41:57

0

你应该试试这个代码:

<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:contentDescription="@string/test" 
    android:padding="1dp" 
    android:src="@drawable/some_photo" 
    android:cropToPadding="true" 
    android:scaleType="centerCrop" 
    android:background="@color/grey_border"/>