首页 > 解决方案 > Android 4 不缩放矢量可绘制对象

问题描述

我正在将代码从 Android 7 转换回 Android 4.4

具体来说,我正在尝试使用自定义 Track 和 Thumb 绘制自定义 Switch。在 Android 7 上它工作正常,在 Android 4 上,Thumb drawable 根本没有缩放,使它看起来很丑。

这是它在 Android 4 上的外观,带有未缩放的拇指可绘制对象

这是它在 Android 7 上的外观,这是预期的外观

由于在 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看起来像一个狭窄的鸡蛋,而不是一个圆圈,如链接图像所示。

提前感谢您的帮助!

标签: androiddrawablescalingandroid-4.4-kitkat

解决方案


只需在 xml 中添加 tools:targetApi="lollipop" 并使用 xml 设置可绘制


推荐阅读