0

我正在为此工作几个小时,但无法解决。我想在一个 XML 文件中合并 2 个图像 - 所以这将是我的形状的基本 xml 文件。我希望这个形状包括一个作为框架的 png 和一个作为框架内的图片的 png。那幅画会动态变化。

我尝试使用标签来构建我的形状,但是当我将它包含到我的主 xml 文件中时它失败了,因为我只能以 root 身份使用合并。尝试做同样的事情,但仍然没有得到我想要的......

我该怎么做才能合并这两个 png,并能够在框架 png 内设置内部 png 位置?

编辑:一些代码:

<ImageView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent"             
    android:src="@drawable/userprofilepicture"
    android:scaleType="fitXY" 
    android:contentDescription="@string/SmallLogo" />


<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:contentDescription="@string/SmallLogo"
    android:scaleType="fitXY"
    android:padding="30dp"
    android:src="@drawable/questionmark" />

</FrameLayout>

这是我的框架和内部图片 xml 源.. 在图形布局中查看它时看起来不错。当将它包含在我的主 xml 文件中时,由于某种原因它会翻转图像...... ???

这是我的主要 xml 的一部分:

        <TableRow>

        <ImageView
            android:layout_gravity="center_vertical"
            android:layout_marginTop="2.5dp"
            android:contentDescription="@string/SmallLogo"
            android:src="@drawable/logosmall" />

        <ImageView
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="2.5dp"
            android:contentDescription="@string/slogen"
            android:src="@drawable/slogen" />

        <include layout="@drawable/userprofilepicture"
            android:layout_width="30dp"
            android:layout_height="30dp"/>

    </TableRow>
4

2 回答 2

0

您是否考虑过使用9-patch和自定义布局?这是一个例子

于 2012-05-23T16:08:41.553 回答
0

创建一个 FrameLayout 自定义类。此类将具有框架布局的所有 XML 属性。

com.package.example;

public class PictureFrame extends FrameLayout {

    public PictureFrame(Context c, AttributeSet attrs) {
        super(c, attrs);
        LayoutInflater inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        //This adds the image views as you've styled them in the XML file
        inflater.inflate(R.layout.myFrameImages, this);
    }

    public void setInnerImage(int resource) {
        ImageView ivInner = (ImageView) findViewById(R.id.innerImage);
        ivInner.setImageResource(resource);
    }

}

您的 XML 文件看起来像

<ImageView
     android:src="@drawable/myFrameImage"
     android:layout_height="fill_parent"
     android:layout_width="fill_parent"
     android:scaleType="fitXY"/>
<ImageView
     android:src="@drawable/myInnerImage"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:scaleType="fitXY"
     android:layout_margin="10dp"
     android:id="@+id/innerImage"/>

您也可以在 XML 中声明时创建自己的 XML 属性,因此可以直接在 xml 中声明内部图像。如果您需要帮助,您必须与我联系或发布另一个问题。

于 2012-05-23T16:10:02.883 回答