如何在不缩放的情况下将矢量可绘制在图层列表中居中

2024-04-04

我正在尝试使用VectorDrawable in a LayerList无需缩放向量。例如:

<layer-list>
    <item android:drawable="@color/grid_item_activated"/>
    <item android:gravity="center" android:drawable="@drawable/ic_check_white_48dp"/>
</layer-list>

可绘制的ic_check_white_48dp定义为:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="48dp"
        android:height="48dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FFFFFFFF"
        android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
</vector>

所需的效果是检查图标位于可绘制图层的中心,而不缩放。问题是,上面的图层列表导致复选图标缩放以适应图层大小。

I can如果我将每个密度的矢量可绘制对象替换为 PNG 并按如下方式修改图层列表,则会产生所需的效果:

<layer-list>
    <item android:drawable="@color/grid_item_activated"/>
    <item>
        <bitmap android:gravity="center" android:src="@drawable/ic_check_white_48dp"/>
    </item>
</layer-list>

有什么方法可以使用VectorDrawable?


我在尝试将矢量绘图放在分层列表上时遇到了同样的问题。

我有一个解决方法,它不完全相同,但它有效,您需要设置整个可绘制对象的大小并向矢量项添加填充:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <size android:height="120dp" android:width="120dp"/>
            <solid android:color="@color/grid_item_activated"/>
        </shape>
    </item>
    <item android:top="24dp"
          android:bottom="24dp"
          android:left="24dp"
          android:right="24dp"
          android:drawable="@drawable/ic_check_white_48dp"/>
</layer-list>

上面形状的大小设置了整个可绘制对象的大小(本例中为 120dp),第二项的填充(本例中为 24dp)使矢量图像居中。

它与使用不一样gravity="center"但它在 API 21 和 22 中使用向量的工作方式。

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

如何在不缩放的情况下将矢量可绘制在图层列表中居中 的相关文章

  • 如何为ScrollView放置固定图像背景?

    我应该想要滚动视图滚动 而不是背景中的图像 将图像添加到滚动视图框架之前的视图层次结构的较高位置
  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 如何重试已消耗的 Observable?

    我正在尝试重新执行失败的已定义可观察对象 一起使用 Retrofit2 和 RxJava2 我想在单击按钮时重试特定请求及其订阅和行为 那可能吗 service excecuteLoginService url tokenModel Ret
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 带有 EditText 和 Spinner 的对话框

    我有一个按钮 单击后会弹出一个对话框 我希望对话框有一个EditText and a Spinner对话框内 我不知道如何设置它的视图 我有一个代码AlertDialog它有效 只是EditText and Spinner我需要将其放入其中
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何绘制独立于 DPI 的 GDI + 文本

    我正在使用 GDI 绘制文本 我最近注意到 当 DPI 更改时 该文本会自动缩放 有没有办法让GDI 文本绘制独立于DPI 例如 我想绘制最大 20 像素的文本 无论 DPI 是多少 是否可以 这个怎么做 下面是示例代码 我想以恒定的大小绘
  • 为什么 UIView 的框架没有在 ViewDidLayoutSubviews 中更新?

    我正在尝试更新一个框架UIView其中包含按钮和标签 我正在尝试更新它viewDidLayoutSubviews 我也尝试过viewDidLoad viewWillAppear viewDidAppear 我想更改视图的 y 位置 orig
  • Android 中 GridView 最后一行的布局问题

    这是我的 GridView 我每行有 3 个项目 如图所示 视图中的最后一行仅包含一个项目 如果最后一行包含 3 个项目 则网格视图会正确滚动到最后 如果最后一行的项目少于 3 个 则视图的滚动幅度不会超过图片中显示的范围 GridView
  • Linq 和 StreamReader 获取行

    使用 LINQ 从制表符分隔的 txt 文件中获取每个字符串 然后获取每个单词 通常是 string Split 的做法 的有效方法是什么 var v from line in File ReadAllLines select n 我相信这
  • 回调内更新的角度变化检测

    我正在寻找一个简单问题的推理 我有一个简单的组件 它有一个布尔属性 我在组件的模板中显示该属性 现在的问题是 如果我在回调中更新此属性 该属性确实会更新 在组件中 但更新的值不会呈现 更改检测不起作用 我必须显式调用changeDetect
  • matplotlib - 多边形边缘的半径 - 这可能吗?

    我正在 matplotlib 中绘制一个多边形 我输入了所有点的坐标 在某些点之间 我希望有 圆形 或 径向 边缘而不是直线 例如绘图上的点 1 和 2 这可能吗 如果不可能 最有效的绘制方法是什么 编辑 罗格的解决方案效果很好 您可以通过
  • 哪种 WPF 控制套件最适合 MVVM? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 似乎真正评估 UI 控制套件的唯一方法是下载试用版并投入大量时间来了解其局限性和设计缺陷 然而 有这么多
  • 暂时解压字典

    说吧 我有一个这样的迪克 my dictionary a 1 c 5 b 20 d 7 现在 我想用我的 dic 执行此操作 if my dictionary a 1 and my dictionary d 7 print my dicti
  • 如何自定义机器人框架报告中生成的日志文件

    I want only test scenarios in the Log file of the report generated in the Robot Framework but while clicking upon the Te
  • 如果 git 依靠文件快照运行,为什么 .git/ 不会随着时间的推移而变得巨大?

    我一直在读 git 的书 在这本书中 我了解到 git 通过拍摄您使用的文件的快照来发挥作用 而不是像其他 VCS 那样进行增量 这有一些极好的好处 然而 这让我想知道 随着时间的推移 包含这些快照的 git 文件夹不应该膨胀得太大吗 有些
  • 如何在Access VBA中引用Excel对象?

    为了能够使用 Access 2007 VBA 脚本中的 Excel 对象和常量 我必须做出哪些声明 Dim wb As Workbook or Set objExcelApp New Excel Application or Borders
  • 如何格式化 android-range-seek-bar 的最小值和最大值?

    我使用 android range seek bar 控件https github com anthem android range seek bar https github com anothem android range seek
  • 如何将直方图的条形与 x 轴对齐?

    考虑这个简单的例子 library ggplot2 dat lt data frame number c 5 10 11 12 12 12 13 15 15 ggplot dat aes x number geom histogram 看到
  • PHP - $_FILES 数组为空[重复]

    这个问题在这里已经有答案了 是的enctype属性已设置 其他表单 表单处理程序工作正常 因此临时目录必须是可写的 我没主意了 我检查了帖子值并 POST file 存在并包含文件名 这是我的表单和处理它的 PHP 我缺少什么
  • 使用 javascript 单击 asp.net 按钮“您确定吗?”在回发之前

    我有一个 asp 按钮 它将触发删除 并希望有一个客户端 JavaScript 你确定弹出窗口可以防止任何意外吗 什么是 javascript 来处理这个 您可以将 javascript 添加到按钮的 OnClientClick 事件中 关
  • 为什么 BCL 没有 CRC 类?

    为什么 NET 基类库没有 CRC 类 Eric Lippert 对 为什么功能 X 没有实现 有最好的解释 我认为他对为什么或为什么不使用该语言实现一两件事有所了解 有人问我 为什么 C 不实现 功能 X 一直如此 答案 总是一样的 因为
  • 如何忽略传递给数据类的额外参数?

    我想创建一个config dataclass为了简化白名单和对特定环境变量的访问 键入os environ VAR NAME 相对于而言是乏味的config VAR NAME 因此 我需要忽略我的中未使用的环境变量dataclass s i
  • 如何在刷新时保持我在页面上的位置(AJAX)

    我知道这只能通过 AJAX 实现 但我从未使用过 AJAX 在我的网站上 您可以保留游戏 Magic 中的卡牌列表 这就是完整的列表 您必须按一个按钮才能添加卡片 每张卡片都有这个按钮 当您添加它时 它会将卡片添加到您的列表中 然后刷新并再
  • 复制构造函数中的省略号有何含义?

    考虑以下程序 include
  • 如何在不缩放的情况下将矢量可绘制在图层列表中居中

    我正在尝试使用VectorDrawable in a LayerList无需缩放向量 例如