- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
请耐心等待,我是新来的!
我想在我的 android 应用程序中使用矢量,并且我希望我的应用程序向后兼容。我找到了 this support library看起来很酷!*
所以我对如何“安装”它感到困惑。它为您提供了下载 .pom、.aar、javadoc.jar 和 sources.jar 文件的链接。我应该下载哪一个,我应该把文件放在哪里(什么文件夹)?
(我正在使用 Android Studio!)
*(有人知道不同的 VectorDrawable 支持库吗?我很想听听大家的经验!)
最佳答案
这是一个对我有用的选项使用此库 - https://github.com/wnafee/vector-compat (API 14+)
android {
// use version 22 or higher
buildToolsVersion "22.0.1"
...
}
dependencies {
compile 'com.wnafee:vector-compat:1.0.5'
...
}
并创建一个使用矢量兼容类的自定义 ImageView 类 -
public class SvgImageView extends ImageView {
private Drawable icon;
public SvgImageView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray ta = context.obtainStyledAttributes(attrs,
R.styleable.button_left, 0, 0);
try {
int resId = ta.getResourceId(R.styleable.button_left_b_icon, -1);
if (resId != -1) {
icon = ResourcesCompat.getDrawable(this.getContext(), resId);
}
} finally {
ta.recycle();
}
if (icon != null) {
setImage(icon);
}
}
public void setImage(Drawable icon) {
SvgImageView.this.setImageDrawable(icon);
}
}
矢量图像示例 -
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:width="@dimen/logo_dimen"
android:height="@dimen/logo_dimen"
android:viewportWidth="@integer/view_port_dimen_logo"
android:viewportHeight="@integer/view_port_dimen_logo"
app:vc_viewportWidth="@integer/view_port_dimen_logo"
app:vc_viewportHeight="@integer/view_port_dimen_logo">
<group
android:name="rotationGroup"
android:pivotX="0"
android:pivotY="0"
android:rotation="0">
<path
android:name="v"
android:fillColor="@color/white"
android:pathData="m15.5,15.6c0,-1.5 2.8,-1.9 2.8,-5c0,-1.5 -0.7,-2.6 -1.8,-3.5h1.6l1.7,-1.1h-5c-1.7,0 -3.5,0.4 -4.8,1.6c-1,0.8 -1.6,2.1 -1.6,3.4c0,2.4 1.9,4.1 4.2,4.1c0.3,0 0.5,0 0.8,0c-0.1,0.3 -0.3,0.6 -0.3,1c0,0.7 0.3,1.2 0.8,1.8c-1.6,0.1 -3.4,0.3 -4.9,1.2c-1.1,0.7 -2,1.8 -2,3.2c0,0.6 0.2,1.1 0.4,1.6c1,1.7 3.2,2.2 5,2.2c2.3,0 4.9,-0.7 6.1,-2.8c0.4,-0.6 0.6,-1.3 0.6,-2.1c0.2,-3.5 -3.6,-4 -3.6,-5.6zm-1.7,-1.2c-2.2,0 -3.2,-2.8 -3.2,-4.6c0,-0.7 0.1,-1.4 0.6,-1.9c0.4,-0.6 1.1,-0.9 1.7,-0.9c2.2,0 3.2,3 3.2,4.8c0,0.7 -0.1,1.4 -0.6,1.9c-0.4,0.4 -1.1,0.7 -1.7,0.7zm0,10.5c-1.9,0 -4.5,-0.8 -4.5,-3.2c0,-2.5 2.9,-3.1 4.9,-3.1c0.2,0 0.4,0 0.6,0c1.2,0.8 2.8,1.8 2.8,3.4c-0.1,2.2 -2,2.9 -3.8,2.9zm9.7,-10.5v-2.6h-1.3v2.6h-2.5v1.3h2.5v2.6h1.3v-2.6h2.6v-1.3h-2.6l0,0z"
app:vc_fillColor="@color/white"
app:vc_pathData="m15.5,15.6c0,-1.5 2.8,-1.9 2.8,-5c0,-1.5 -0.7,-2.6 -1.8,-3.5h1.6l1.7,-1.1h-5c-1.7,0 -3.5,0.4 -4.8,1.6c-1,0.8 -1.6,2.1 -1.6,3.4c0,2.4 1.9,4.1 4.2,4.1c0.3,0 0.5,0 0.8,0c-0.1,0.3 -0.3,0.6 -0.3,1c0,0.7 0.3,1.2 0.8,1.8c-1.6,0.1 -3.4,0.3 -4.9,1.2c-1.1,0.7 -2,1.8 -2,3.2c0,0.6 0.2,1.1 0.4,1.6c1,1.7 3.2,2.2 5,2.2c2.3,0 4.9,-0.7 6.1,-2.8c0.4,-0.6 0.6,-1.3 0.6,-2.1c0.2,-3.5 -3.6,-4 -3.6,-5.6zm-1.7,-1.2c-2.2,0 -3.2,-2.8 -3.2,-4.6c0,-0.7 0.1,-1.4 0.6,-1.9c0.4,-0.6 1.1,-0.9 1.7,-0.9c2.2,0 3.2,3 3.2,4.8c0,0.7 -0.1,1.4 -0.6,1.9c-0.4,0.4 -1.1,0.7 -1.7,0.7zm0,10.5c-1.9,0 -4.5,-0.8 -4.5,-3.2c0,-2.5 2.9,-3.1 4.9,-3.1c0.2,0 0.4,0 0.6,0c1.2,0.8 2.8,1.8 2.8,3.4c-0.1,2.2 -2,2.9 -3.8,2.9zm9.7,-10.5v-2.6h-1.3v2.6h-2.5v1.3h2.5v2.6h1.3v-2.6h2.6v-1.3h-2.6l0,0z" />
</group>
</vector>
示例 -
<packagename.SvgImageView
app:b_icon="@drawable/google_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView3" />
关于android - VectorDrawable 向后兼容性和安装非官方支持库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713093/
我想在我的启动画面中显示一个 VectorDrawable 我的 SVG 有 android:width="320dp"和 android:height="238dp"
这个问题在这里已经有了答案: How to properly use backwards compatible Vector Drawable with the latest Android Sup
我有 5 个 vectorDrawables,其中 3 个是从 google 给我的 PSD 生成的. 其中两个显示正确(均来自 PSD 生成的矢量),但另外两个在 API 21 上运行时根本不起作用
我用 VectorDrawable 创建了 ImageView。在 Android 模拟器中一切正常,但在我的手机中图像像素化。 最佳答案 如果你的设备版本 API 低于 21,你必须在 Gradl
我有一个 ImageView,其 src 类型为 VectorDrawable。它需要可缩放。有什么方法可以找到点击的路径吗? 最佳答案 VectorDrawable是一个src类型,像jpg, pn
Android Studio 中的向量 xml: 结果: 将 24dp 更改为 96dp,结果: Android Studio 中的菜单 xml: ... ... 所以我现在的
截至 this android developer blog post 所述,我们现在可以使用 AppCompat 23.2.0 及更高版本在 Android API 7+ 上使用 VectorDra
我创建了一个 SVG 矢量图形(使用 CorelDraw X7),它看起来像这样: 然后我用了svg2android将其转换为 VectorDrawable 格式。但是,当我尝试在布局中使用它时,它并
请耐心等待,我是新来的! 我想在我的 android 应用程序中使用矢量,并且我希望我的应用程序向后兼容。我找到了 this support library看起来很酷!* 所以我对如何“安装”它感到困
我已经用我拥有的路径数据创建了一个 VectorDrawable 文件。但问题是图像没有在总区域的中心对齐,而是创建为左上对齐。看看: 文件: 现在检查当 as app:srcComp
我在使用支持库引入的 VectorDrawables 时遇到问题。 环顾四周,我读到了有关 Android Studio 中缩放不良或预览不正确的类似问题。好吧,不幸的是我的问题不同。 问题: 事实上
我使用了一些图像,它们是通过本地 SVG 文件使用 Android Studio 的 Vector Asset Studio 导入的。 图像在我的 nexus 6p 上完美加载,然而,在 Sony X
Android Lollipop 引入了几个新类,其中之一是 VectorDrawable。我只是想知道什么时候适合在位图图像上使用 VectorDrawable,因为知道 VectorDrawabl
我试图在我的 View 类中使用 SVG 文件,我遇到的问题是:当我像这样设置 VectorDrawable 的色调时: var d = AppCompatResources.getDrawable(
是否有可能以编程方式更改整个 SVG/VectorDrawable 对象中的一条路径? 我看到了一些针对小型 VectorDrawables 的解决方案,其中包括在路径上添加具有其他颜色的新 xml
最近收到一份关于运行 API 16 的设备的崩溃报告: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid
我想在我当前使用的 VectorDrawable 图像文件周围创建一个矩形边框,但到目前为止我做不到。 这是我的图像 xml 文件: 这是我到目前为止尝试过的:
我在我的 android 项目中动态显示一些 VectorDrawable 图标。但是,我无法使用以下代码缩放 java 层中的图标: VectorDrawable jDrawable = (Vect
我仍在尝试解决自几天前以来遇到的问题,但我仍未找到解决方案。但是,我正在一步步到达那里。现在我遇到了另一个障碍。 我正在尝试让 Bitmap.getpixel(int x, int y) 返回用户使用
我正在使用 Android Lollipop 的全新酷炫矢量绘图。但是对于一些 SVG 文件,当使用该可绘制对象时,我总是在运行时得到 NumberFormatException。 这是我的堆栈跟踪:
我是一名优秀的程序员,十分优秀!