使用Android在xml中使用ShapeDrawable绘制多个形状

我正在代码中的自定义视图中画一个canvas上的圈数。 圆是静态的,不会改变。 我想用xml中的ShapeDrawable来绘制它们来帮助清理我的代码。 我将有许多不同的drawable,用户可以select,因此我不想在代码中这样做。 有3或4 xml drawables似乎很整洁我。

我已经使用ShapeDrawable在xml中创build了一个圆,但无法向xml添加多个形状

如何使用ShapeDrawable将多个graphics添加到xml文档中。

2 Solutions collect form web for “使用Android在xml中使用ShapeDrawable绘制多个形状”

以下是我用一个像素黑色边框填充的红色圆圈,中间是一个白色的数字72:

在res \ drawable中创build一个XML文件并适当命名,例如red_circle_black_border.xml

<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="oval"> <solid android:color="@android:color/black" /> </shape> </item> <item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp"> <shape android:shape="oval"> <solid android:color="@android:color/red" /> </shape> </item> </layer-list> 

然后,在你的布局中使用它,声明如下:

 <TextView android:text="72" android:textSize="14dp" android:textStyle="bold" android:background="@drawable/red_circle_black_border" android:layout_width="22dp" android:layout_height="22dp" android:gravity="center_vertical|center_horizontal" android:textColor="@android:color/white" /> 

显然,根据需要更改textSize和layout_width / height 🙂

我想我已经find了一个解决scheme,使用层列表添加多个形状到我的XML文件。 我还没有尝试过,但这似乎是正是我想要的形状将被绘制在他们的数组索引的顺序。

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <solid android:color="#FFF8F8F8" /> </shape> </item> <item android:top="23px"> <shape> <solid android:color="#FFE7E7E8" /> </shape> </item> </layer-list> 

博客文章

Android文档

  • 如何在C#中处理XML
  • 有没有XSLT名称的元素?
  • 将'xml'导入到Sql Server中
  • 以下类无法实例化: - android.support.v7.widget.Toolbar
  • 规格。 为JUnit XML输出
  • 什么是表示空XML元素的正确方法?
  • Android:以编程方式向线性布局添加文本视图
  • 如何在屏幕底部alignment视图?
  • PHP命名空间simplexml问题
  • 在Java中合并两个XML文件
  • 将XML转换为JSON(并返回)使用Javascript