我想用layout
的背景可绘制对象来填充包含ImageView
的{{1}}。
vector xml
但这会导致异常:
val view = LayoutInflater.from(parent.context).inflate(R.layout.my_layout, parent, false)
我尝试将可绘制图标移动到android.view.InflateException: Binary XML file line #72: Binary XML file line #72: Error inflating class ImageView
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
...
中,但这似乎是res/drawable-v21/
本身的问题。
我尝试使用LayoutInflater
代替androidx.appcompat.widget.AppCompatImageView
,但这没用。
ImageView:
ImageView
矢量图标(xml的示例-无法发布确切的图标):
<ImageView
android:id="@+id/layout_ico"
android:layout_width="@dimen/t_icon_size"
android:layout_height="@dimen/t_icon_size"
android:background="@drawable/vector_ico"/>
答案 0 :(得分:0)
使用appcompatImageView时是否已更新gradle文件?
defaultConfig {
...
vectorDrawables.useSupportLibrary = true
}
在您的布局中
<androidx.appcompat.widget.AppCompatImageView
...
app:srcCompat="@drawable/something" />
答案 1 :(得分:0)
除了在gradle文件中包括以下行:
defaultConfig {
...
vectorDrawables.useSupportLibrary = true
}
您还需要在Application类中添加以下行:
class App : Application() {
override fun onCreate() {
super.onCreate()
...
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
}
}