我需要在我的 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/