当前位置:  开发笔记 > 前端 > 正文

VectorDrawable已缩放且不清晰

如何解决《VectorDrawable已缩放且不清晰》经验,为你挑选了1个好方法。

Android Studio中的向量xml:



结果:

更改24dp96dp,结果:

Android Studio中的菜单xml:

...



 
 
    ...

所以我现在的问题是,如何像svg一样自动更改大小?



1> racs..:

我不太确定这是您要寻找的答案,但是无论如何都可以:

总之:使用ImageViewscaleType="fitXY"并设置你想要的大小或在创建自己的子类,并设定尺寸Drawable,如下所述。

ImageView具有相同的矢量可绘制对象,比例类型fitCenter在左侧,fitXY右侧:

问题的详细说明:

您的问题可能来自这样一个事实,即许多Android组件都在使用Drawable实例(假设它具有静态尺寸)。
这些组件试图Drawable通过调用Drawable#getIntrinsicHeight()和Drawable#getIntrinsicWidth()来获取的实际尺寸。这些方法将提供您在VectorDrawable资源中定义的确切数量,分别为高度和宽度。
如果这些尺寸不适合渲染所需要的矩形尺寸,则(通常)这些组件在渲染之前Matrix对进行缩放。对此一无所知,必须将其渲染为不同的维度并将矢量渲染为CanvasDrawableDrawableBitmap以及您在资源中定义的尺寸。在Bitmap准备好向量内容之后,它将Canvas使用缩放比例进行渲染,并且(毫不奇怪)它将变得模糊。

并非所有组件都幸运地执行了此操作,例如ImageView,可以Drawable通过调用[Drawable#setBounds()](http://developer.android.com/reference/android/graphics/ drawable / Drawable.html#setBounds(int,int,int,int)),但仅当比例类型设置为FitXY时。(我不得不窥探ImageView出处才能弄清楚这一点。)
不幸的是,这在某些情况下可能无济于事。您可以从这些OS组件创建自己的子类化组件,并在Drawable确定正确尺寸时在上设置尺寸。

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有