Articles of vectordrawable

VectorDrawable呈现问题

我遇到了由支持库引入的VectorDrawables问题。 环顾四周,我阅读了关于Android Studio中的不良缩放或不正确预览的类似问题。 那么,我的问题是不同的。 问题: 事实上,我的VectorDrawable在Android Studio预览中完美呈现,但在设备上运行时会出现混乱(Android v 5.1.1和6.0)。 出口: 从一个SVG文件(只有一个复合path)开始,我用Android Studio工具导入了它(但是我也尝试了很多其他工具来转换它)。 这个文件和其他一些文件是一样的,尽pipe只有一些渲染不好。 我曾经试过的东西: 我试图用app:srcCompat(甚至用src :)在imageview中设置它。 我试图在菜单中使用它(直接设置图标,或使用select器)。 SVG代码: <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 626.96 610.53"><title>PATHOLOGIES</title><path d="M5766.55,588.54a54.73,54.73,0,0,0-4.23-3.81,248.33,248.33,0,0,0,31.34-121.54c-0.23-138.68-114.72-251.15-253.38-249-134.71,2.07-243.52,110.91-245.54,245.64a249.48,249.48,0,0,0,390.59,209.52l0.21,0.22,155.12,155.12,81-81Zm-222.36,64.92c-104.85,0-189.85-85-189.85-189.85s85-189.85,189.85-189.85S5734,358.76,5734,463.61,5649,653.46,5544.19,653.46ZM5452,347.1l7.72-22.08a161.29,161.29,0,0,1,52.5-20.55l-19.84,56.75A19.25,19.25,0,0,1,5467.83,373l-4-1.41A19.25,19.25,0,0,1,5452,347.1Zm20.13,82.62L5430,502.57a19.25,19.25,0,0,1-26.29,7l-3.71-2.14a19.25,19.25,0,0,1-7-26.29L5435,408.33a19.25,19.25,0,0,1,26.29-7l3.71,2.14A19.25,19.25,0,0,1,5472.1,429.72Zm-82.73-14.9A161.59,161.59,0,0,1,5408.85,374l9.06,9.06a19.25,19.25,0,0,1,0,27.22l-3,3A19.24,19.24,0,0,1,5389.37,414.82Zm151.76-54A19.25,19.25,0,0,1,5552,335.85l55.51-21.72a162.36,162.36,0,0,1,43.87,27.64A19.17,19.17,0,0,1,5646,345l-78.34,30.65a19.25,19.25,0,0,1-24.94-10.91Zm-13.43,29.12,66.74,51.21a19.25,19.25,0,0,1,3.55,27l-2.61,3.4a19.25,19.25,0,0,1-27,3.55l-66.74-51.21a19.25,19.25,0,0,1-3.55-27l2.61-3.4A19.25,19.25,0,0,1,5527.69,389.91Zm83.57,191.47-2.82,3.23a19.25,19.25,0,0,1-27.15,1.86l-63.41-55.28A19.25,19.25,0,0,1,5516,504l2.82-3.23a19.25,19.25,0,0,1,27.16-1.86l63.41,55.28A19.25,19.25,0,0,1,5611.26,581.38Zm60.09-191.15,4,1.59a19.25,19.25,0,0,1,10.71,25l-31.28,78.09a19.25,19.25,0,0,1-25,10.71l-4-1.59A19.25,19.25,0,0,1,5615,479l31.28-78.09A19.25,19.25,0,0,1,5671.34,390.24ZM5504.73,604.39a19.19,19.19,0,0,1-4.85,15.4,161.36,161.36,0,0,1-38.43-16.53l-9.92-76.83a19.25,19.25,0,0,1,16.62-21.55l4.25-.55A19.25,19.25,0,0,1,5494,521ZM5686.4,538L5685,544.4a163.11,163.11,0,0,1-56.5,57.93l16.12-73.51a19.25,19.25,0,0,1,22.92-14.68l4.19,0.92A19.25,19.25,0,0,1,5686.4,538Z" transform="translate(-5294.72 -214.14)"/></svg> 向量代码: <vector android:height="24dp" android:viewportHeight="610.53" android:viewportWidth="626.96" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> <path android:fillColor="#FF000000" android:pathData="M471.8,374.4a54.7,54.7 0,0 0,-4.2 -3.8,248.3 248.3,0 0,0 31.3, -121.5c-0.2,-138.7 -114.7,-251.1 -253.4,-249 -134.7,2.1 -243.5,110.9 -245.5,245.6a249.5,249.5 0,0 0,390.6 209.5l0.2, […]

AnimatedVectorDrawable不会animation

我试图让animationvectorDrawables工作,并根据http://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html做了一切,它仍然无法正常工作。 我也试图让这个项目工作。 https://github.com/chiuki/animated-vector-drawable 有谁知道为什么它不animation? 这里是我使用的文件: AnimatedVectorDrawable <animated-vector xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/circle"> ​ <target android:name="circle" android:animation="@anim/morph_to_drop"/> ​ </animated-vector> VectorDrawable <?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="80dp" android:height="80dp" android:viewportHeight="50" android:viewportWidth="50">​ <path android:name="circle" android:fillColor="#607eff" android:pathData="M15.9,0c8.776,0 15.9,7.125 15.9,15.9c0,8.776 -7.124,16.015 -15.9,16.015c-8.775,0 -15.9,-7.239 -15.9,-16.015c0,-8.775 7.125,-15.9 15.9,-15.9Z"/>​ </vector> <?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="80dp" android:height="80dp" android:viewportHeight="50" android:viewportWidth="50">​ <path android:name="circle" android:fillColor="#607eff" android:pathData="M15.9,0c8.776,0 15.9,7.125 15.9,15.9c0,8.776 -7.124,16.015 -15.9,16.015c-8.775,0 […]

Android Layer-List VectorDrawable大小

我的问题是关于这个: 链接 。 我最近把Android的大部分资源从不同的分辨率的png文件改成了vector绘图。 我正在使用“轻扫即删除”库 ,可以在滑动过程中更改其视图的背景,以显示带有垃圾桶图标的Gmail样式红色背景,类似于此(具有绿色背景并带有检查图标): 我曾经这样做,使用下面的代码,我仍然做的API API <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <color android:color="@color/accent"/> </item> <item android:right="@dimen/activity_horizontal_margin"> <bitmap android:gravity="right|center_vertical" android:src="@drawable/ic_delete_24dp"/> </item> </layer-list> 但是,API 21+需要不同的语法 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <color android:color="@color/accent" /> </item> <item android:right="@dimen/activity_horizontal_margin" android:drawable="@drawable/ic_delete_24dp" android:gravity="right|center_vertical"/> </layer-list> 现在,API 21和API 22(棒棒糖)上的图标被拉长以填充屏幕,而不是左/右侧的图标。 有没有什么办法来指定图标的宽度?

我可以在ActionBar菜单图标中使用vector绘图文件吗?

我可以在ActionBar菜单图标中使用vector文件吗? 现在,appCompat支持API> 8的vector文件。我可以在ActionBar菜单中使用vector绘制吗?

我们可以使用VectorDrawable或VectorXML作为android中的推送通知的图标?

我正在使用PNG图像,但是它的尺寸变得太大,所以我必须妥协的质量。 所以我在想vector可能是另一种方式? 例子将是一个很大的帮助。

在运行时编程animation(VectorDrawable)animation

我想在运行时编程animationAnimatedVectorDrawable而不使用.xml文件。 实际上,我使用.xml文件的方式与文档样本显示的方式相同: AnimatedVectorDrawable 所以,我有vector_drawable.xml包含<vector>嵌套<group>和<path>它定义一个形状。 对于这个vector我有animated_vector_drawable.xml包含<animated-vector>与android:animation assinged <target> 。 最后一步是使用<objectAnimator>使用<objectAnimator>定义一个animation文件rotation.xml 一切正常,但问题出现,当我需要创build许多不同的形状(向量)与许多不同或类似的animation,因为这会产生许多.xml文件。 我不能将已经准备好的<vector>从一个.xml文件包含到另一个(某种<include>标签),所以我需要将相同的代码复制到另一个文件中。 这是非常烦人的。 如果我想为less数<target>元素使用相同的animation,但每个animation必须有不同的延迟或任何属性值( alpha , rotation , interpolator …),我必须创build新的包含<objectAnimator> .xml文件一个属性值,而不是使用相同的,一个文件具有更改的属性值。 这也很烦人。 我发现我可以使用ObjectAnimator并以编程方式为AnimatedVectorDrawable设置alpha & fillColor ,但是当我想要更改它的translateX , translateY , rotation或任何其他属性时,会出现问题。 有没有办法做到这一点没有.xml 。 我只想访问<group>

Androidvector绘制的发射器图标和其他图像在Android N

我将在我的应用程序中使用vector可绘制function的操作栏图标和通知图标。 随着Android N的发布,他最重要的function之一就是“ 屏幕缩放” (位于“ 辅助function改进”部分 )。 另一个有趣的function是多窗口支持 (请参阅链接,如果你想要更多的信息)。 这是否意味着我们应该使用vector绘制也适用于启动器图标和应用程序上使用的其他图像?

以编程方式更新android Vector Drawable

我有一个VectorDrawable由9个矩形组成。 这被定义为drawables文件夹中的XML。 我有这个设置作为我在xml中声明的ImageView的背景。 android:src="@drawable/squares00"我想在运行时以编程方式更改一个或多个方块的颜色。 我知道有办法做到这一点使用VectorDrawableanimation。 但我想知道是否有更简单的方式访问我的vectorDrawable在Java中,更新其属性(设置矩形的一个或多个填充颜色),然后使用更新的VectoDrawable更新图像背景。 我的目标是Android API 21(棒棒糖)

在android中以编程方式更改fillColor

我不想以编程方式从Android中的vector文件编辑fillColor。 在xml文件中,我可以使用attribut android:fillColor编写我的颜色,但是我不想在运行时改变颜色。 任何这样的例子? 谢谢。

有没有一种方法来监听AnimatedVectorDrawables中的animation结束

我已经创build了一个AnimatedVectorDrawable,它工作得很好,现在我正在寻找一种方法来更改animation或完成后隐藏视图。 我希望有一个听众,但看起来不像。 有人可以帮忙吗? 编辑 所以我find了解决方法,但不是一个非常优雅的方式。 我所做的是创build一个线程并进行轮询,如果animation正在运行。 new Runnable() { public void run() { while(mLoop) { if(mAnimatedVectorDrawable.isRunning()) { Thread.sleep(mPollingInterval); } else { mLoop = false; // TODO what ever } } } }; 如果有人find更好的解决scheme,请分享。