android - Android 4 不缩放矢量可绘制对象
问题描述
我正在将代码从 Android 7 转换回 Android 4.4
具体来说,我正在尝试使用自定义 Track 和 Thumb 绘制自定义 Switch。在 Android 7 上它工作正常,在 Android 4 上,Thumb drawable 根本没有缩放,使它看起来很丑。
这是它在 Android 4 上的外观,带有未缩放的拇指可绘制对象
由于在 XML 文件中定义轨道和拇指会使应用程序在 Android 4 下崩溃,因此我在代码中执行以下操作:
Drawable drawable = VectorDrawableCompat.create(m_resources, switchId, getTheme());
sw.setTrackDrawable(drawable);
Drawable thumb = AppCompatResources.getDrawable(this, R.drawable.switch_thumb_small);
sw.setThumbDrawable(thumb);
文件 switch_thumb_small.xml 包含一个具有 2 层的选择器,其中一个是:1. 黑色圆圈 2. 内部为未选中状态的白色十字,或者:1. 黑色圆圈 2. 内部有一个白色复选标记
但是整个拇指drawable看起来像一个狭窄的鸡蛋,而不是一个圆圈,如链接图像所示。
提前感谢您的帮助!
解决方案
只需在 xml 中添加 tools:targetApi="lollipop" 并使用 xml 设置可绘制
推荐阅读
- python - ValueError:无法将字符串转换为浮点数:Python 3D 图中的“2019-01-01 00:00:00”
- arrays - 在颤动中使用带有名称图像日期的数组列表的列表视图
- connection-pooling - 在 Heroku PostgreSQL 中使用 connect-pg-simple 尝试在没有 SSL 的情况下进行连接
- reactjs - 如何在前端存储socket.IO id?
- sql - 此表达式键入不正确,或者它太复杂而无法计算。SQL 访问
- typescript - 是否可以将 Set 的值用作类型或接口中的允许值?
- sql - 检查特定整数是偶数
- android - resConfigs 如何在 android (gradle) 中工作?
- sql - 使用触发器删除后更新表
- haskell - chr 232 不返回字符 è