android - svg-android imageview 不工作

标签 android vector svg imageview native

我需要在我的 android 应用程序中显示 svg 文件。 svg-android似乎是唯一拥有任何文档的图书馆,因此也是我的第一种方法。唯一可用的示例演示了如何创建 ImageView 附加 svg 图像并将其附加到主要内容 View 。但是,我希望 svg 文件显示在我已经定义的 RelativeLayout 上。我尝试了这样的实现:

ImageView imageView = new ImageView(this); 
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.logo); 
imageView.setImageDrawable(svg.createPictureDrawable());
RelativeLayout home_header = (RelativeLayout) findViewById(R.id.home_header);
home_header.addView(imageView);

一切看起来都很好(没有警告/错误)但是当我测试应用程序日志猫报告时:

05-27 11:25:43.940: I/Adreno200-EGLSUB(28492): <ConfigWindowMatch:2078>: Format RGBA_8888.
05-27 11:25:43.950: E/(28492): Can't open file for reading
05-27 11:25:43.960: E/(28492): Can't open file for reading

我已经验证了以下内容: - 文件未在任何其他程序中打开 - 文件格式正确

我在这里错过了什么?对可能发生的事情有什么建议吗?

最佳答案

android:hardwareAccelerated="false" 将禁用整个 Activity 的硬件渲染。另一种方法可能是只使用:

imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

应该仅为该 View 禁用它。

附言。如果您正在寻找具有更好文档(和更多功能)的 SVG 库,请尝试我的:http://code.google.com/p/androidsvg/

关于android - svg-android imageview 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16778960/

相关文章:

javascript - 如何将 svg 按钮变成下载按钮?

android - Android 上的 C++11 std::chrono::steady_clock 问题

java - C :/android-ndk"is not found in PATH in android

javascript - 我该如何处理 "overload"websocket?

android - 如何在 android 中将复杂类型的对象传递给 WorkManager。即列表、 map 、POJO

c++ - 使用 vector::back() 修改 vector 元素

c++ - 如何在 C++ 中比较两个大 vector 的大小

c++ - vector : namespace std 的重载运算符 +

javascript - 翻译元素的位置

css - SVG 滤镜使彩色图像变成纯蓝色