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

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(使用前将#替换为@)

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

  • 单击弹出菜单时为什么导航栏出现在全屏应用程序中

    我有一个全屏应用程序 MainActivity java public class MainActivity extends AppCompatActivity TargetApi Build VERSION CODES KITKAT pr
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • Android Studio 3.0.0 不允许 DOCTYPE

    升级到Android Studio 3 0 0 同步并更新gradle插件 出现以下错误 Error DOCTYPE not allowed if function http apache org xml features disallow
  • 如何在 Android / Java 中获取图像的分辨率

    如何在 Android 中找到任何图像的分辨率 获取存储在磁盘中的图像大小的有效方法 例如获取用户选择上传的图像文件的大小 是使用BitmapFactory Options并设置inJustDecodeBounds为真 这样做你就会获取图像
  • Android 中用虚拟键盘捕捉按键按下的情况?

    使用物理键盘 您可以使用按键监听器 http developer android com reference android text method KeyListener html 就像是 myEditText setOnKeyListe
  • Firebase 数据库快速入门处理计数的方式安全吗?

    我想为文章点赞创建一个增量字段 我指的是这个链接 https firebase google com docs database android save data save data as transactions https fireb
  • 在 Anko DSL 中创建自定义 View/ViewGroup 类

    我想创建一个自定义视图 它只是一些 Android 视图的包装 我考虑创建一个自定义 ViewGroup 来管理其子视图的布局 但我不需要这么复杂 我基本上想做的是 class MainActivity verticalLayout tex
  • Retrofit-2 内容类型问题

    我的 Api 接受 Content Type application json 作为标头 我按照改造文档中所述完美设置了标题 Headers Content Type application json POST user classes C
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • Android:应用内计费V3超时返回哪个响应码?

    出现网络超时情况时 Google Play 应用内结算服务 ice er V3 将返回哪些响应状态代码 它的所有功能都是统一的吗 我将在这里描述我的发现 我通过拔掉主机插头 在安装了全功能 GP GP Store V3 10 10 GP S
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • 如何持续更新MPAndroidChart中的Y轴值

    我希望 LineChart 中的轴能够实时调整其最大值和最小值 当新数据的 Y 值增加 正值和负值 时 像 ResetAxisMaxValue 和 ResetAxisMinValue 这样的函数可以很好地工作 但是 一旦信号再次变低 Y 值
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 以编程方式将 TextView 添加到主屏幕小部件

    我想以编程方式将文本视图控件添加到我的主屏幕小部件 在下面的示例中 我使用 TextView 填充 Linearlayout 但是这里应该如何使用 RemoteView 它只接受 xml 资源布局作为参数 public class MyWi
  • Android 从命令行停止模拟器

    这个问题与如何通过命令行关闭Android模拟器 https stackoverflow com questions 5912403 how to shut down android emulator via cmd 但是 在尝试第一个答案
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • Android 自定义警报对话框中的 OnClickListener

    我是一个自学成才的初学者 感谢耐心 谢谢 在 Eclipse 中 我使用自己的 xml 文件 custom dialog 创建了一个自定义警报对话框 称为 usernamealert 如果用户尚未输入用户名 即 username lengt

随机推荐

  • 如何绘制独立于 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无需缩放向量 例如