Android - 用xml制作箭头形状

2023-12-19

我想为我的形状制作一个像这样的按钮

有没有办法用 xml 来做到这一点? 就像设置一些点一样,就我而言,我有 5..


你需要的是创建一个shape xml file在你的项目中drawable-xxx文件夹,然后使用此形状作为按钮的背景。

这是名为的形状文件arrow_shape.xml:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<!-- Colored rectangle-->
<item>
    <shape android:shape="rectangle">
        <size 
            android:width="100dp"
            android:height="40dp" />
        <solid android:color="#5EB888" />
        <corners android:radius="0dp"/>
    </shape>
</item>

<!-- This rectangle for the top arrow edge -->
<!-- Its color should be the same as the layout's background -->
<item
    android:top="-40dp"
    android:bottom="65dp"
    android:right="-30dp">
    <rotate
        android:fromDegrees="45">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
        </shape>
    </rotate>
</item>

<!-- This rectangle for the lower arrow edge -->
<!-- Its color should be the same as the layout's background -->
<item
    android:top="65dp"
    android:bottom="-40dp"
    android:right="-30dp">
    <rotate
        android:fromDegrees="-45">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
        </shape>
    </rotate>
</item>

</layer-list>

然后将其用作按钮的背景,例如

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/arrow_shape"/>

这是屏幕截图:

更多信息关于Layer-List你可以找到here http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList.

EDIT:

请记住,我对形状的宽度和高度使用了某些值。如果您更改这些,您可能需要更改top, bottom and right attributes。因此,在这种情况下,请考虑在项目中使用不同的值values目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 用xml制作箭头形状 的相关文章

  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • CollapsingToolBarLayout - 状态栏稀松布颜色不改变

    几天前我更新了我的 android studio 并开始使用 CoordinatorLayout 和 CollapsingToolbarLayout 只是尝试一些东西 工具栏稀松布颜色似乎覆盖了状态栏初始颜色和状态栏稀松布颜色 从 xml
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • 带有 EditText 和 Spinner 的对话框

    我有一个按钮 单击后会弹出一个对话框 我希望对话框有一个EditText and a Spinner对话框内 我不知道如何设置它的视图 我有一个代码AlertDialog它有效 只是EditText and Spinner我需要将其放入其中
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 使用dompdf访问远程图像的安全问题

    我正在使用 dompdf 生成 PDF 文件 该文件从 highcharts js 导出库获取一些图像 动态图表 现在我必须将 DOMPDF ENABLE REMOTE 的默认设置从 false 更改为 true 以使 dompdf 能够包
  • 多个方法参数上的 @Cacheable 键

    来自弹簧文档 http static springsource org spring docs 3 1 0 M1 spring framework reference html cache html Cacheable value book
  • 如何在没有响应标头的情况下显式终止来自服务器的 http 连接

    我正在为我的一个客户端应用程序开发一个服务器模拟器 我正在使用 GlassFish 服务器 我必须在我的服务器应用程序中模拟 http 连接终止条件 有没有一种方法可以显式终止来自服务器端的连接 以便客户端不会收到任何响应标头 目前我已经尝
  • sudo pip 安装 django

    这是我第一次尝试安装 Django 当我运行它时 它成功安装了 Django 1 7 3 但我收到了下面的这些警告 我无法在网上找到任何有关它的信息 所以我希望有人能够澄清它们的含义 如果我需要修复它们 以及我该如何去做 谢谢 下面是我的终
  • 如何在 SwiftUI 中添加键盘工具栏,即使键盘不可见,该工具栏仍然保留

    我有一个聊天应用程序 想要在键盘上添加一个工具栏 类似于 SwiftUI 之前的 inputAccessoryView 我知道 iOS15 现在可以选择使用以下内容添加工具栏 来自 hackingwithswift toolbar Tool
  • bash:截断文件名,保持它们唯一

    我使用类似于此的 for 循环将文件夹中的所有文件名截断为 16 个字符 for i in do Shortname i 0 16 Let s assume I don t need the extension mv i Shortname
  • Playwright C# - 处理 Toast 消息

    我试图使用剧作家检查祝酒消息的内容 但找不到合适的方法来实现这一目标 剧作家文档列出了一种处理警报消息的合适方法 我可以使用该方法在解除警报之前检索警报中的文本内容 例如 Page Dialog dialog gt alertMessage
  • 图发生率列表实现

    我正在考虑图形数据结构实现 并正在查看 发生率列表 表示 这里有一个简单的描述 发生率列表 http en wikipedia org wiki Incidence list 因此图中的每个顶点都存储它所关联的边的列表 鉴于我的图是有向图
  • 使用 std::cout 正确地用零填充负整数

    我发现这个问题已经被问过 但每个人给出的答案都是 std cout lt lt std setw 5 lt lt std setfill 0 lt lt value lt lt std endl 这对于正数来说很好 但是对于 5 它会打印
  • 我可以在 Kubernetes Pod 中运行 Google Monitoring Agent 吗?

    看来谷歌监控代理 供电堆栈驱动程序 https cloud google com monitoring agent install agent应安装在每个Node 即每个计算实例 即每台机器 库伯内斯簇 然而新的plugins like N
  • 如何在 OAuth 同意屏幕中启用内部选项?

    当我尝试在 OAuth 同意屏幕中选择 内部 选项时 它告诉我 因为您不是G Suite用户 所以您只能制作您的应用 可供外部 一般受众 用户使用 我怎样才能启用这个选项 制作内部应用程序的唯一方法是从 gsuite 域帐户创建项目 通过您
  • 创建在 Aurelia 中使用依赖注入的类的新实例

    我想创建一个能够创建使用依赖注入的类 MyClass 实现抽象类 的新实例的工厂 我希望工厂看起来像这样 Factory export class Factory public static makeMyClass return new M
  • 导入错误:没有名为flask_wtf的模块

    我收到错误 ImportError No module named flask wtf 我尝试了所有可能的解决方案 我使用 安装了flask wrf flask bin pip install flask wtf Requirement a
  • Plotly:从悬停标签中隐藏“null”

    我有一个名为my customdata其中有一些nan价值观 当我绘制旭日图并将列表传递给customdata 它会根据需要显示值 但对于nan值 它反而显示0 如果我将 si 前缀设置与自定义数据一起传递 或null如果我没有传递自定义
  • 如何杀死一个javascript函数?

    示例代码 var isExecutionOver false myFunction function does some asynchronous stuff and sets isExecutionOver to true when th
  • 如何在Python 3中设置sys.stdout编码?

    在 Python 2 中设置默认输出编码是一个众所周知的习惯用法 sys stdout codecs getwriter utf 8 sys stdout 这包裹了sys stdout以 UTF 8 编码输出的编解码器编写器中的对象 然而
  • 为什么 `changes` 返回 `Event t (Future a)`

    The changes https hackage haskell org package reactive banana 0 8 0 2 docs Reactive Banana Frameworks html v changes函数有类
  • 使用 API REST 创建的 GitHub 机密但返回空

    我使用 GitHub REST API 创建了 GitHub 机密 如以下文档中所示 https docs github com en rest actions secrets https docs github com en rest a
  • 如何为 MySQL 表添加索引?

    我有一个非常大的 MySQL 表 包含大约 150 000 行数据 目前 当我尝试运行时 SELECT FROM table WHERE id 1 由于 ID 字段是主索引 因此代码运行良好 然而 对于该项目最近的发展 我必须通过另一个字段
  • Android - 用xml制作箭头形状

    我想为我的形状制作一个像这样的按钮 有没有办法用 xml 来做到这一点 就像设置一些点一样 就我而言 我有 5 你需要的是创建一个shape xml file在你的项目中drawable xxx文件夹 然后使用此形状作为按钮的背景 这是名为