0

我正在尝试找到一种对齐 2 张图像的方法。第一个图像是边框图像(如宝丽来),第二个图像是图片。图片应该从边框的角落开始(距真实边框图像的左侧和顶部大约 20dp),但该距离因您拥有的屏幕而异......

            <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>

这就是我现在得到的:

在此处输入图像描述

最难的是图像不应该弹出边框图像并且整个视图(边框+图像)后面的背景是可变的!

4

3 回答 3

1

我认为您应该将边框图像设为 9 补丁:http: //developer.android.com/guide/developing/tools/draw9patch.html

于 2012-04-24T09:52:23.343 回答
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>

我刚刚还没有测试过,但这大约是你会做的。

于 2012-04-24T09:31:39.703 回答
0

我不得不处理一个类似的问题,back_img, img, text。我可以通过样式以非常糟糕的方式处理它(对于每种不同的屏幕尺寸),但这是我发现唯一有效的方法......

我设置了一个 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 以及在需要时设置文本。

于 2012-04-24T09:43:31.330 回答