我在摩托罗拉的旧版本手机上渲染矢量图标时遇到了问题。我在Moto G和其他搭载KitKat的设备上进行了测试。每次启动应用程序时,一些图标会显示不完整或出现损坏。而且每次启动后它们的错乱程度都不同。在联想、三星、AOSP模拟器和其他从JB+到Nougat的设备上都没有问题。只有摩托罗拉手机无法很好地渲染支持库中的矢量图标。有人遇到了相同的问题吗?
我在摩托罗拉的旧版本手机上渲染矢量图标时遇到了问题。我在Moto G和其他搭载KitKat的设备上进行了测试。每次启动应用程序时,一些图标会显示不完整或出现损坏。而且每次启动后它们的错乱程度都不同。在联想、三星、AOSP模拟器和其他从JB+到Nougat的设备上都没有问题。只有摩托罗拉手机无法很好地渲染支持库中的矢量图标。有人遇到了相同的问题吗?
矢量图形也支持像TextView的drawableLeft属性这样的情况。 请访问此链接Android Studio 1.4
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/icon"
尝试在您的Application类的onCreate()方法中添加以下内容:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
来自官方文档:
启用此功能后,AppCompat 可以拦截一些框架中的可绘制物填充,使 DrawableContainer 资源中的矢量可绘制物隐式填充。
您可以在 ImageView 的 android:src 或 TextView 的 android:drawableLeft 等位置使用这些可绘制物。
此功能默认禁用,因为启用它可能会导致内存使用问题,并且更新配置实例时可能会出现问题。
如果您手动更新配置,则可能不想启用此功能。请注意。
AppCompatImageView
来支持所有设备的矢量图。<android.support.v7.widget.AppCompatImageView
app:srcCompat="" // your drawable declaration
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android.support.v7.appcompat:srcCompat
将一个可绘制对象设置为此ImageView的内容。在旧版本平台上运行时,允许使用矢量可绘制对象。
需要支持库23.4.0或更高版本
另一种方法是通过Gradle配置矢量可绘制对象设置。在Gradle中包含以下代码。
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
ImageView
中使用srcCompat
。<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_add" />
来源:https://android-developers.googleblog.com/2016/02/android-support-library-232.html
希望对您有所帮助 :)
试试这个:-
Drawable date = AppCompatResources.getDrawable(itemView.getContext(), R.drawable.ic_date_range_black_24dp);
etDeliveryDate.setCompoundDrawablesWithIntrinsicBounds(date, null, null, null);