2012-04-24 57 views
0

我试图找出一种方法来对齐2个图像。第一幅图像是边界图像(像宝丽来),第二幅图像。图片应在边界(大约从左侧与真实的边界图像的顶部20dp)的拐角处开始,但这个距离上,你有什么不同的屏幕...对齐2个图像,所以第一个作为第二个边框的边框

  <RelativeLayout 
               android:layout_width="fill_parent" 
               android:layout_height="wrap_content" > 

               <ImageView 
                   android:id="@+id/image" 
                   android:layout_width="wrap_content" 
                   android:layout_height="wrap_content" /> 

               <ImageView 
                   android:layout_width="fill_parent" 
                   android:layout_height="wrap_content" 
                   android:adjustViewBounds="true" 
                   android:src="@drawable/border" /> 
           </RelativeLayout> 

这是我现在得到:

enter image description here

最难的事情是图像不应该跳出边界图像和全景后面的背景(边框+图片)是可变的!

+0

也许你可以使用这个问题的答案: http://stackoverflow.com/questions/3263611/border-在图像中查看在Android – 2012-04-24 09:28:43

+0

不,我需要图像作为边界... – Ferdau 2012-04-24 09:31:35

回答

1

我想你应该让你的边界图像9补丁: http://developer.android.com/guide/developing/tools/draw9patch.html

+0

那么我的回形针会不会伸出来呢? – Ferdau 2012-04-24 09:59:46

+0

我认为这可能是走出边界,放在左上角并堆放在顶部? – Daniele 2012-04-24 10:05:49

+2

@Ferdau:不,您可以轻松创建一个包含回形针在不可拉伸区域的9贴图。就个人而言,我会先尝试这种方法,然后再进入将多个视图堆叠在一起的方向。 – 2012-04-24 11:06:33

0

最好的办法是使用“边界”的形象作为布局的背景绘制,然后在该布局图像的位置:

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/polaroid_background" 
    android:padding="20dp"> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</RelativeLayout> 

我没有测试过这只是现在,但它是大约你会做什么。

+0

那么,不会适用于所有的屏幕尺寸...由于20dp的填充有时会变大... – Ferdau 2012-04-24 09:36:02

+1

@Ferdau:20dp将根据像素密度进行放大/缩小,但您会遇到与其他方式相同的问题。您需要确定您需要边框的像素数量。 – 2012-04-24 09:37:07

+0

这就是我认为...太糟糕了,谢谢你的时间! – Ferdau 2012-04-24 09:39:38

0

我不得不处理类似的问题,back_img,img,文本。我可以在一个非常糟糕的方式,通过样式(为每个不同的屏幕大小)对付它,但我发现的唯一的事情是工作......

我设置的LinearLayout,并把3个IMGS另外的LinearLayout

LinearLayoutLine //wrap content\\ 
    LinearLayoutImg1 //wrap content + marginRight\\ 
     Img11 
     Img12 
     Text13 
    /LinearLayoutImg1 

    LinearLayoutImg2 
     Img21 
     Img22 
     Text23 
    /LinearLayoutImg2 
/LinearLayoutLine 

在样式,像这样:

<style name="img1"> 
     <item name="android:layout_width">85dp</item> 
     <item name="android:layout_height">85dp</item> 
     <item name="android:layout_marginLeft">1dp</item> 
     <item name="android:layout_marginRight">2dp</item> 
     <item name="android:layout_marginTop">1dp</item> 
     <item name="android:layout_marginBottom">1dp</item> 
     <item name="android:gravity">center</item> 
     <item name="android:scaleType">fitXY</item> 
    </style> 

    <!-- imatge del tema --> 
    <style name="img2"> 
     <item name="android:layout_width">82.6dp</item> 
     <item name="android:layout_height">82.6dp</item> 
     <item name="android:layout_marginLeft">-87dp</item> 
     <item name="android:layout_marginRight">0dp</item> 
     <item name="android:layout_marginTop">0dp</item> 
     <item name="android:layout_marginBottom">0dp</item> 
     <item name="android:gravity">center</item> 
    </style> 

    <style name="text" parent="@android:style/TextAppearance.Small"> 
     <item name="android:layout_width">66dp</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:lines">1</item> 
     <item name="android:gravity">center</item> 
     <item name="android:layout_marginBottom">-25.3dp</item> 
     <item name="android:layout_marginLeft">-75dp</item> 
     <item name="android:textStyle">normal</item> 
     <item name="android:textSize">10.5sp</item> 
     <item name="android:textColor">@color/blanc</item> 
    </style> 

所以,你设置IMG1一点点保证金大小(我发现有时你需要在IMGS即保证金),而第二个负IMG1宽度+ rightMargin并在需要的情况下,文字。

+0

那么我的图片应该填满屏幕...所以硬编码的宽度不是一个选项...感谢帖子,但! – Ferdau 2012-04-24 09:47:26

+0

然后您没有图像:P怎么办?用框架宽度/高度创建2个图像(取决于它们是上/左),将它们设置为不可见并将新图像设置为rightTo和Under这些图像?如果他们的尺寸与您的相框尺寸相同,则应该这样做。 – Jordi 2012-04-24 09:53:22

+0

问题在于回形针覆盖... – Ferdau 2012-04-24 09:58:20

相关问题