android - 各种 XML 形状作为一个可绘制对象

标签 android xml graphics shapes

我正在尝试通过必须包含各种形状的 XML 文件设置背景,我不希望它们重叠(我已经玩过了),但我希望它们彼此重叠。

我已经在一个 xml 中定义了一个图层列表,现在我想在那个图层下有一个形状。

我如何仅使用 xml 来完成此操作?

谢谢,我一直在四处寻找,但我发现的只是有关图层列表的信息,而不是这种特殊情况。我确定这里有关于它的帖子,但我似乎找不到它。提前抱歉。

PD:既然我在问,有什么方法可以在形状上实现模糊效果吗?

编辑:提出相同问题的另一种方式:我有一个 rectangle.xml 和一个 circle.xml,如何将一个放在另一个下面以便在背景中使用。

最佳答案

这里有两个明显的选择:

  1. 将图层拆分为单独的可绘制对象,并将它们分配给不同的 View ,例如垂直方向 LinearLayout
  2. android:top 属性指定一个适当的值以偏移第二个(和第 3 个、第 4 个等)drawable。

示例 1:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/drawable1" />
    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/drawable2" />
</LinearLayout>

如果您当前的 LayerDrawable 描绘了某种状态,您可能还想查看 StateListDrawableLevelListDrawable

示例 2:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/drawable1" />
    <item android:drawable="@drawable/drawable1" android:top="50dp" />
</layer-list>

第二个选项需要一些关于第一项大小的先验知识。如果您使用 xml 定义可绘制对象,则必须在设计时设置适当的偏移值。

关于android - 各种 XML 形状作为一个可绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20274901/

相关文章:

javascript - 如果我直接分配 lat 和 lng ,我的代码有什么问题,它将显示在附近的地方

c++ - 使用 vector 中的一组点绘制贝塞尔曲线

c# - Windows 窗体是否有任何开源或免费的图形/报告/图表框架?

android - 在桌面/移动网站上发送 Facebook 消息

android - 在Android中访问包中的资源文件夹和原始文件夹中的文件列表

c# - 如何从XML读取值?

python - 为什么 Python docx 或 lxml 将属性从一个节点移动到另一个节点?

graphics - 如何识别该图像中的矩形?

android - 在 Android 和 IOS 之间选择使用哪种音频文件格式?

android - 无法让 React Native 在 Ubuntu 上运行