我在摩托罗拉预棒棒糖手机上渲染矢量绘图时遇到问题。我在Moto G和其他KitKat上进行了测试。每次我开始应用程序时,一些图标看起来已损坏,有些图标完全缺失。每次发布后,它们都会以不同的方式被破坏。在联想,三星,AOSP模拟器和其他JB +到Nougat的一切都可以。只有摩托罗拉手机才能很好地使用支持库渲染矢量绘图。有没有人有同样的问题?
答案 0 :(得分:2)
在TextView的drawableLeft属性中也支持Vector Drawables。 转到此链接Android Studio 1.4
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/icon"
答案 1 :(得分:2)
尝试将以下内容添加到Application类的onCreate()方法中:
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
来自官方文档:
启用后,AppCompat可以从框架中拦截一些可绘制的通货膨胀,从而实现DrawableContainer资源内矢量抽取的隐式通货膨胀。
然后,您可以在ImageView上的android:src或TextView上的android:drawableLeft等场所使用这些drawable。
此功能默认为禁用,因为启用它可能会导致内存使用问题,以及更新配置实例时出现问题 如果手动更新配置,则可能不希望启用此配置。你被警告了。
答案 2 :(得分:1)
在我的研究中,我找到了两种方法来支持棒棒糖前设备上的矢量绘图。你可以试试这个。
您可以使用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
将drawable设置为此ImageView的内容。允许使用 在较旧版本的平台上运行时,矢量可绘制。
需要支持库23.4.0或最新版
另一种方法是在Gradle中配置矢量可绘制设置。在Gradle中包含以下代码。
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
srcCompat
ImageView
<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
希望它可以帮助你:)
答案 3 :(得分:0)
如果要在VectorView中使用vector,则应使用 srcCompat -AppCompatImageView。但是,如果您想将vector与 drawableLeft 一起使用..请使用此库https://github.com/bsobe/vectorview
答案 4 :(得分:0)
试试这个::: -
Drawable date = AppCompatResources.getDrawable(itemView.getContext(), R.drawable.ic_date_range_black_24dp);
etDeliveryDate.setCompoundDrawablesWithIntrinsicBounds(date, null, null, null);