步骤:

1.在drawable 文件夹中创建一个xml布局文件。

2.修改布局文件

3.在需要使用背景的按键中导入布局。

创建布局文件:

修改布局文件:

<?xml version="1.0" encoding="utf-8"?>
<!--shape:形状 rectangle 长方形-->
<!--corners 边角-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!--设置背景颜色--><solid android:color="@color/colorblue"/><!--设置角为半圆  radius 半径--><corners android:radius="10dp"/><!--bottom 下 top 上 left左 right右--><paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp"/></shape>

预览效果图:

在按键中添加布局:

实际效果:

PS(椭圆按键的xml):

<?xml version="1.0" encoding="utf-8"?>
<!-- shape 形状 oval椭圆形-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval"><!--设置背景颜色--><solid android:color="@color/colorgreen"/><!--设置高度和宽度--><size android:height="30dp"android:width="120dp"/><paddingandroid:bottom="10dp"android:top="10dp"android:left="10dp"android:right="10dp"/></shape>

android开发 写一个自定义形状的按键相关推荐

  1. android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果

    有时候我们对自己开发的项目经常不满意,但是我们要达到自定义刷新动画的效果有一定的难度,别着急,下面爱站技术频道和大家分享Android开发中MJRefresh自定义刷新动画效果,一起来学习吧! [一] ...

  2. android开发笔记之自定义开关按钮

    今天来讲讲自定义单个控件,就拿开关按钮来讲讲,相信大家见了非常多这样的了,先看看效果: 我们可以看到一个很常见的开关按钮,那就来分析分析. 首先: 这是由两张图片构成: ①一张为有开和关的背景图片 ② ...

  3. 如何在React Native中写一个自定义模块

    前言 在 React Native 项目中可以看到 node_modules 文件夹,这是存放 node 模块的地方,Node.js 的包管理器 npm 是全球最大的开源库生态系统.提到npm,一般指 ...

  4. 如何在 React Native 中写一个自定义模块

    前言 在 React Native 项目中可以看到 node_modules 文件夹,这是存放 node 模块的地方,Node.js 的包管理器 npm 是全球最大的开源库生态系统.提到npm,一般指 ...

  5. 仿照源码,手写一个自定义 Spring MVC 框架

    毫无疑问,Spring 框架目前已经成为 Java 开发的行业标准,Spring MVC 作为其 Web 解决方案,是所有 Java 开发者都必须掌握的基本技能,理解其底层原理,才能更好地应用它进行实 ...

  6. android 中自定义安装,Android开发中ListView自定义adapter的封装

    [引入] 我们一般编写listView的时候顺序是这样的: •需要展示的数据集List •为这个数据集编写一个ListView •为这个ListView编写一个Adapter,一般继承自BaseAda ...

  7. 用小程序云开发写一个多人记账小程序

    应女朋友要求,用小程序云开发写一个记账小程序,适合情人记账.家庭记账.团队记账.多人记账的小程序 先上成品图吧 主页: 记账页: 详情页: 个人中心页: 统计页: 其余的页面就不一一展示了,使用到的主 ...

  8. 使用了Dialog,Android开发提升一个档次

    使用了Dialog,Android开发提升一个档次 嘚吧嘚 Dialog是什么呢? Dialog的生命周期是啥样子的? Dialog的使用 普通Dialog SingleDialog(单选Dialog ...

  9. Android开发实践:自定义ViewGroup的onLayout()分析

    Android开发中,对于自定义View,分为两种,一种是自定义控件(继承View类),另一种是自定义布局容器(继承ViewGroup).如果是自定义控件,则一般需要重载两个方法,一个是onMeasu ...

  10. 【Android 开发】SufaceView自定义相机拍照

    前段时间写了关于一篇关于调用系统相机的博客,如果需要调用系统相机和截图可以看一看这篇博客:Android学习之调用系统相机拍照.截图并保存最近发现不同手机,调用系统相机效果不太好,,所以学习Andro ...

最新文章

  1. 项目中WebService使用Spring容器的配置
  2. VMware Virtual SAN存储设计规划
  3. vdi voi idv区别_VDI桌面虚拟化和IDV桌面虚拟化到底有哪些不同
  4. C#中的序列化和反序列化案例
  5. 【HTML】简单实现网页加载动画
  6. Rectangles
  7. python怎么把两个文件合并工具_python开发目录合并小工具 PathMerge
  8. idea 生成自己项目 API (跟jdk api 一样的界面) 香吧
  9. python计算工资_python学习之工资结算
  10. xkcd目录_12条展示AI真相的XKCD片段
  11. 软件工程期末复习汇总
  12. Kubernetes(K8s)学习笔记(一)
  13. FreePic2PDF制作书签
  14. linux中useradd命令的使用详解
  15. 手机cpu性能天梯图2022 手机cpu性能排行2022 手机cpu哪个好
  16. dna编码库_DNA编码化合物库,新药筛选划时代的变革
  17. 出现错误(已解决)RuntimeError: CUDA error: no kernel image is available for execution on the device CUDA ker
  18. javaee连接数据库出现错误
  19. Array.isArray() 判断是不是数组
  20. 基于Java毕业设计影楼网站源码+系统+mysql+lw文档+部署软件

热门文章

  1. android对话框列表,android列表对话框(dialog)的实现
  2. GIS技巧100例25-ArcGIS之shp文件修复
  3. t6服务器虚拟打印机,priPrinter Professional(免费的虚拟打印机) V6.6.0 中文免费版
  4. 数据结构与算法分析(五)队列
  5. 怎样在计算机桌面上安装驱动器,如何安装电脑设备驱动程序?
  6. Windows查看所有的端口
  7. MySQL创建网吧管理系统_java网吧信息管理系统
  8. linux查看任务计划结果,Linux 计划任务
  9. 灰鸽子病毒——网络神偷之后应用最广的反弹端口***
  10. Foxit PDF Editor(福昕阅读器)中插入新的PDF空白页方法