前言

最近看到朋友制作的Android APP使用了极少的图片,但是图形却极其丰富,问了之后得知是使用shape绘制的,有很多优点。

下面是我整理的一些素材:

预览

下面是图片预览:

代码

布局文件

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="match_parent"
  3. android:layout_height="match_parent"
  4. android:orientation="vertical"
  5. android:padding="10dp">
  6. <TextView
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:layout_marginBottom="20dp"
  10. android:background="@drawable/s1"
  11. android:padding="5dp"
  12. android:text="@string/s1"
  13. android:textColor="#fff"
  14. android:textSize="16sp" />
  15. <TextView
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:layout_marginBottom="20dp"
  19. android:background="@drawable/s2"
  20. android:padding="5dp"
  21. android:text="@string/s2"
  22. android:textColor="#ff9800"
  23. android:textSize="16sp" />
  24. <ImageButton
  25. android:layout_width="50dp"
  26. android:layout_height="50dp"
  27. android:layout_marginBottom="20dp"
  28. android:background="@drawable/s3"
  29. android:padding="10dp"
  30. android:scaleType="fitXY"
  31. android:src="@drawable/lsearch" />
  32. <Button
  33. android:layout_width="wrap_content"
  34. android:layout_height="wrap_content"
  35. android:layout_marginBottom="20dp"
  36. android:background="@drawable/s4"
  37. android:padding="5dp"
  38. android:text="@string/s4"
  39. android:textColor="#fff"
  40. android:textSize="16sp" />
  41. <Button
  42. android:layout_width="wrap_content"
  43. android:layout_height="wrap_content"
  44. android:layout_marginBottom="20dp"
  45. android:background="@drawable/s5"
  46. android:padding="5dp"
  47. android:text="@string/s5"
  48. android:textColor="#00bcd4"
  49. android:textSize="16sp" />
  50. <Button
  51. android:layout_width="wrap_content"
  52. android:layout_height="wrap_content"
  53. android:layout_marginBottom="20dp"
  54. android:background="@drawable/s6"
  55. android:padding="5dp"
  56. android:text="@string/s6"
  57. android:textColor="#fff"
  58. android:textSize="16sp" />
  59. </LinearLayout>

shape文件

绿色标签s1.xml

  1. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  2. <solid android:color="#009688" />
  3. <corners android:radius="8dp" />
  4. </shape>

橙色标签s2.xml

  1. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  2. <solid android:color="#00000000" />
  3. <corners android:radius="8dp" />
  4. <stroke android:width="1dp" android:color="#ff9800" />
  5. </shape>

蓝色圆形按钮s3.xml

  1. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  2. <item android:state_pressed="true">
  3. <shape android:shape="oval">
  4. <solid android:color="#aa00bcd4" />
  5. </shape>
  6. </item>
  7. <item android:state_focused="true">
  8. <shape android:shape="oval">
  9. <solid android:color="#aa00bcd4" />
  10. </shape>
  11. </item>
  12. <item>
  13. <shape android:shape="oval">
  14. <solid android:color="#00bcd4" />
  15. </shape>
  16. </item>
  17. </selector>

蓝色按钮s4.xml

  1. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  2. <item android:state_pressed="true">
  3. <shape>
  4. <solid android:color="#aa00bcd4" />
  5. <corners android:radius="8dp" />
  6. </shape>
  7. </item>
  8. <item android:state_focused="true">
  9. <shape>
  10. <solid android:color="#aa00bcd4" />
  11. <corners android:radius="8dp" />
  12. </shape>
  13. </item>
  14. <item>
  15. <shape>
  16. <solid android:color="#00bcd4" />
  17. <corners android:radius="8dp" />
  18. </shape>
  19. </item>
  20. </selector>

蓝色边框按钮s5.xml

  1. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  2. <item android:state_pressed="true">
  3. <shape>
  4. <solid android:color="#e3e3e3" />
  5. <corners android:radius="8dp" />
  6. <stroke android:width="1dp" android:color="#00bcd4" />
  7. </shape>
  8. </item>
  9. <item android:state_focused="true">
  10. <shape>
  11. <solid android:color="#e3e3e3" />
  12. <corners android:radius="8dp" />
  13. <stroke android:width="1dp" android:color="#00bcd4" />
  14. </shape>
  15. </item>
  16. <item>
  17. <shape>
  18. <solid android:color="#00000000" />
  19. <corners android:radius="8dp" />
  20. <stroke android:width="1dp" android:color="#00bcd4" />
  21. </shape>
  22. </item>
  23. </selector>

蓝色带阴影按钮s6.xml

  1. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  2. <item android:state_pressed="true">
  3. <layer-list>
  4. <item android:top="3dp">
  5. <shape>
  6. <solid android:color="#00bcd4" />
  7. <corners android:radius="8dp" />
  8. </shape>
  9. </item>
  10. </layer-list>
  11. </item>
  12. <item android:state_focused="true">
  13. <layer-list>
  14. <item android:top="3dp">
  15. <shape>
  16. <solid android:color="#00bcd4" />
  17. <corners android:radius="8dp" />
  18. </shape>
  19. </item>
  20. </layer-list>
  21. </item>
  22. <item>
  23. <layer-list>
  24. <item>
  25. <shape>
  26. <solid android:color="#dddddd" />
  27. <corners android:radius="8dp"/>
  28. </shape>
  29. </item>
  30. <item android:bottom="3dp">
  31. <shape>
  32. <solid android:color="#00bcd4" />
  33. <corners android:radius="8dp"/>
  34. </shape>
  35. </item>
  36. </layer-list>
  37. </item>
  38. </selector>

参考

谷歌官方文档

qiita.com

Android必知必会--使用shape制作drawable素材的更多相关文章

  1. Android必知必会-使用okhttp的PUT方式上传文件

    注:如果移动端排版有问题,请看 简书版 (<-点击左边),希望CSDN能更好的支持移动端. 背景 公司的文件上传接口使用PUT协议,之前一直用的都是老项目中的上传类,现在项目中使用了okhttp ...

  2. Android必知必会-获取视频文件的截图、缩略图

    背景 公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下. 代码实现 /** * 获取 ...

  3. Android程序员必知必会的网络通信传输层协议——UDP和TCP

    1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android ...

  4. 迈向高阶:优秀Android程序员必知必会的网络基础

    1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...

  5. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...

  6. RecyclerView 必知必会(转)

    [腾讯Bugly干货分享]RecyclerView 必知必会 本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com ...

  7. Java并发必知必会第三弹:用积木讲解ABA原理

    Java并发必知必会第三弹:用积木讲解ABA原理 可落地的 Spring Cloud项目:PassJava 本篇主要内容如下 一.背景 上一节我们讲了程序员深夜惨遭老婆鄙视,原因竟是CAS原理太简单? ...

  8. Java面试必知必会(扩展)——Java基础

    float f=3.4;是否正确? 不正确 3.4是双精度,将双精度赋值给浮点型属于向下转型,会造成精度损失: 因此需要强制类型转换: 方式一:float f=(float)3.4 方式二:float ...

  9. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

随机推荐

  1. 剑指架构师系列-持续集成之Maven实现项目的编译、发布和部署

    Maven组织项目进行编译.部署 Maven项目基本的结构说明如下: mazhi  // 控制所有荐的编译.部署.发布 mazhi-app-parent  // 项目的父项目,有一些公共的设置可以被子 ...

  2. Dynamics CRM2016 Web Api之查询查找字段的相关属性

    之前有篇博文介绍了如何获取查找字段的name值(跳转),本篇在此基础上再延伸下,实现的效果类似于EntityReference,可以取到查找字段的id,name,localname. 这里我以客户实体 ...

  3. OWASP Top 10十大风险 – 10个最重大的Web应用风险与攻防

    先来看几个出现安全问题的例子 OWASP TOP10 开发为什么要知道OWASP TOP10 TOP1-注入 TOP1-注入的示例 TOP1-注入的防范 TOP1-使用ESAPI(https://gi ...

  4. 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现

    ----------------------------------------------------------------------------------------------[版权申明: ...

  5. GCT学习总结

    GCT的一个综合的考试性质,时间紧,题量大,这个时候需要我们快速.准确的答题,把自己的能力展现在其中,十一期间和同学们一起学习.讨论,大家都提高很大,各科谈一下自己的心得 数学: 数学相对来说还是不难 ...

  6. Linux 高性能服务器编程——IP协议详解

    1 IP服务特点 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态.无连接.不可靠的服务. 无状态:IP通信双方不同步传输数据的状态信息,因此IP数据包的发送.传输和接收都是无序的.     ...

  7. 详解EBS接口开发之供应商导入(补充)--错误信息处理

    check reject details on records of AP_SUPPLIER_INT SELECT s.parent_table,s.reject_lookup_code,S.LAST ...

  8. UIKit中ImageView动画堆叠显示的微调整

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 网上看到一个PackingList项目(如果需要源代码可以Q我 ...

  9. android连接打印机

    android连接  网络打印,主要使用socket连接设备,发送指令给设备. 首先要有设备的IP,端口号一般默认的是9100 //打印设备网络IP etIp.setText("192.16 ...

  10. Python 键盘鼠标监听

    异想天开的想记录一下自己每天的键盘键位走向,于是就在网上搜索了一下相关的实现,然后就发现了一个第三方的库pyHook.封装的很好,我们只需要傻瓜式的调用里面的API就可以了. 下面是我在使用pyHoo ...