矢量绘图不久前已添加到支持库中,从那时起API发生了很多变化:Gradle标志、初始化器块、选择器、自定义XML属性等。问题是-现在如何正确使用它(支持lib v25)在这些情况下:
XML和编程方式。
你需要添加矢量绘图功能。useSupportLibrary=适用于您的构建。gradle文件:
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
你会注意到这个新属性只存在于Gradle插件的2.0版本中。如果您使用Gradle 1.5,您将使用:
// Gradle Plugin 1.5
android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
您需要将srcCompat添加到ImageView:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_add" />
将最新的支持库添加到应用程序的版本中。gradle
依赖项:
compile 'com.android.support:appcompat-v7:26.0.2'
并在同一文件中添加以下行:
android {
...
defaultConfig {
...
vectorDrawables.useSupportLibrary = true
}
...
}
通过vector Asset Studio导入矢量图像。
就这样,你准备好出发了!
XML
使用app:srccomat
属性而不是android:src
:
<ImageView
...
app:srcCompat="@drawable/your_vector"
... />
以编程方式
直接从资源id:
imageView.setImageResource(R.drawable.your_drawable);
设置为可绘制对象(例如用于着色):
Drawable vectorDrawable
= AppCompatResources.getDrawable(context, R.drawable.your_vector);
imageView.setImageDrawable(vectorDrawable);
如果要设置色调:
DrawableCompat.setTint
(vectorDrawable, ContextCompat.getColor(context, R.color.your_color));
XML
没有简单的解决方案:XML属性android: draableTop(Bottom etc)
无法处理前Lollipop上的矢量图像。一种解决方案是将初始化器块添加到活动并将向量包装到另一个XML绘图器中。第二-定义自定义TextView。
以编程方式
直接设置资源不起作用,必须使用Drawable
object。以与ImageView
相同的方式获取它,并使用适当的方法进行设置:
textView.setCompoundDrawablesWithIntrinsicBounds(vectorDrawable, null, null, null);
没有什么特别的:
<item
...
android:icon="@drawable/your_vector"
... />
menuItem.setIcon(R.drawable.your_vector);
这是不可能的,你必须使用PNG:(
我试图使用VectorDrawable作为单选切换按钮,但在API 17级设备中出现了“invalid drawable tag vector”错误。 我在一个片段中使用它,我在包装片段的活动中将setCompatVectorFromResourcesEnabled设置为true。 另外,我设置了 在build.gradle 这是视图xml, 这是一个矢量图像内容 有什么方法可以在android中
需要什么步骤来使用这个库和构建我的应用程序与multidex支持?
假设的例子 假设如下... 我的LiveData类如下所示: 同样,这不是真的很低效吗,因为它会在recyclerView.adapter中触发完全刷新吗?
问题内容: 我在一个应用程序中工作,我们需要将对象保存为XML格式,并在以后需要时加载它们。为此,我使用JAXB将XML编组和解编回Java类。 我的问题是我必须在某个时候更改Java模型(通过添加,重命名或删除属性),结果,我将拥有不兼容的保存XML,无法将其绑定回新的类形式。 为了解决这个问题,每次必须进行更改时,我都会在一个新程序包(以其版本命名)下复制所有类的副本,并应用所请求的更改。并且
查看v3规范,新消息似乎是有效的,难道旧的提供程序库(v3.2.13)不支持它吗?我查看了代码,发现了这个commit,在我看来,这似乎是引入更改的地方。 从我的测试来看,新的提供程序库(3.5.12)可以处理新旧格式,但如果类路径中同时存在新的提供程序库和旧的使用者库,http契约测试将失败,并出现运行时错误。 问题:
ngrok承诺有关其接口的兼容性和稳定性,以便您可以自信地构建集成顶部,知道在升级到较新版本时期望的更改。 兼容性承诺 Point Release (2.0.0 -> 2.0.1) - ngrok承诺在点发布之间没有突破性的变化 Minor Version Change (2.0 -> 2.1) - ngrok可能会进行小的更改,打破兼容性的次要版本更改。 ngrok承诺,任何破坏性更改将由一个版