Dan*_*son 9 android android-support-library android-vectordrawable
我正在使用支持lib版本24.2.1,并启用了支持向量 AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
这些关于支持向量的函数有什么不同?我在用VectorDrawableCompat.create(getResources(), R.drawable.my_vector, null).但是这样在我的测试设备(Android 4.3)上生成一个drawable时,在编程上按钮上设置一个drawable就像这样:
button.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
使用AppCompatDrawableManager.get().getDrawable(getActivity(), R.drawable.my_vector);(包装在状态列表选择器中)似乎工作正常,虽然我似乎无法找到它的文档.
Eug*_*nec 14
这些关于支持向量的函数有什么不同?
AppCompatDrawable.getDrawable(...) 将膨胀所有类型的drawables包括
ContextCompat.getDrawable(Context, int)内部调用此方法AppCompatDrawableManager.get().getDrawable(Context, int),这不是公共API的一部分.从消费者的角度来看,这两种方法的功能相同.
VectorDrawableCompat.create(...) 只会膨胀矢量drawables(仅当构建脚本启用了支持向量drawable时;进一步阅读).
但这不会在我的测试设备上产生可绘制的内容(Android 4.3)
VectorDrawableCompat.create(...)将null在错误时返回.如果引用的drawable不是vector drawable,如果你没有正确配置构建插件并且为API 21以下的平台生成PNG,那么就会发生这种情况.
通过更改app模块 激活API 21下的矢量drawables支持build.gradle:
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Android支持库23.2博客文章.
我正在使用支持lib版本24.2.1,并启用了支持向量
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
该方法不"启用支持向量".首先,您需要启用支持向量drawables,build.gradle如上所述.
在此之后,此方法基本上启用可绘制容器内的支持向量drawables,如LayerDrawable或StateListDrawable.
请参阅AppCompat - 向量的年龄,了解更多信息如何被滥用.
| 归档时间: |
|
| 查看次数: |
3116 次 |
| 最近记录: |