xml之shape 自定义图形

corners ----------圆角
gradient ----------渐变
padding ----------内容离边界距离
size ------------大小 
solid  ----------填充颜色
stroke ----------描边

 

注意的是corners的属性bottomLeftRadius为右下角、bottomRightRadius为左下角


1 使用shape作为背景不能指定单边圆角的xml的解决方案

  1. <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >  
  2.   
  3.     <!-- 第一层 -->  
  4.     <item>  
  5.         <shape>  
  6.             <solid android:color="#e9361a" />  
  7.             <!-- 圆角 -->  
  8.             <corners android:radius="4dp" />  
  9.         </shape>  
  10.     </item>  
  11.     <!-- 第二层 -->  
  12.     <!-- 距离第一层上边缘4px -->  
  13.     <item android:top="4px">  
  14.         <shape>  
  15.             <!-- 实心填充颜色 -->  
  16.             <solid android:color="#e9361a"/>  
  17.         </shape>  
  18.     </item>  
  19.   
  20. </layer-list>  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用TinyXMLXML解析到自定义的struct中的基本步骤: 1. 定义struct以表示XML元素的结构。例如,如果您要解析以下XML: ``` <person> <name>John</name> <age>30</age> </person> ``` 您可以定义一个名为Person的struct: ``` struct Person { std::string name; int age; }; ``` 2. 使用TinyXML打开XML文件并获取根元素。例如: ``` TiXmlDocument doc("file.xml"); if (!doc.LoadFile()) { // error handling } TiXmlElement* root = doc.FirstChildElement("person"); if (!root) { // error handling } ``` 3. 使用TinyXML的API将XML元素解析到struct中。例如: ``` Person person; TiXmlElement* nameElement = root->FirstChildElement("name"); if (nameElement) { person.name = nameElement->GetText(); } TiXmlElement* ageElement = root->FirstChildElement("age"); if (ageElement) { ageElement->QueryIntAttribute("value", &person.age); } ``` 这里,我们首先获取XML元素`<name>`和`<age>`,然后将它们的文本和属性值分别存储到person结构中。 完整的示例代码如下: ``` #include <iostream> #include <string> #include "tinyxml.h" struct Person { std::string name; int age; }; int main() { TiXmlDocument doc("file.xml"); if (!doc.LoadFile()) { std::cerr << "Error opening file" << std::endl; return 1; } TiXmlElement* root = doc.FirstChildElement("person"); if (!root) { std::cerr << "Error: no <person> element found" << std::endl; return 1; } Person person; TiXmlElement* nameElement = root->FirstChildElement("name"); if (nameElement) { person.name = nameElement->GetText(); } TiXmlElement* ageElement = root->FirstChildElement("age"); if (ageElement) { ageElement->QueryIntAttribute("value", &person.age); } std::cout << "Name: " << person.name << std::endl; std::cout << "Age: " << person.age << std::endl; return 0; } ``` 这个例子演示了如何使用TinyXMLXML解析到自定义的struct中。请注意,这只是一个基本示例,您可能需要根据您的实际需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值