android svg资源使用具体操作
16lz
2021-01-25
android svg矢量图使用步骤
一、布局添加应用内的svg资源图库方法
具体操作如下
**SVG图库链接:**
https://icons8.com/preloaders/en/circular
https://iconstore.co/redirect/?icon-pack=someicons
https://www.iconfont.cn/
**首先要准备svg图片资源**
- 可以直接利用Android studio自带工具将svg格式文件转换成xml格式的路径文件;
项目上鼠标右键—选择new,操作见图
- 选择自己准备好的svg文件,选好后点击路劲窗口的OK按钮,再点击next;操作见图
- 下面就是选择转换后的xml文件的存放位置了,确定好位置后直接finish就可以了
- 下面就是直接在布局文件中使用svg转换后的xml图文了,使用就跟我们直接引用shape图形一样了。
使用效果见图
二、代码直接使用svg或者打开外部svg文件
**具体实现步骤如下:**
-
可以直接在android 项目引入解析库 implementation ‘com.caverock:androidsvg:1.4’
操作dependencies {
implementation fileTree(include: [’*.jar’], dir: ‘libs’)
implementation ‘com.android.support:appcompat-v7:28.0.0’
implementation ‘com.android.support.constraint:constraint-layout:1.1.3’
implementation ‘com.android.support:support-v4:28.0.0’implementation 'com.caverock:androidsvg:1.4'
}
-
add内部svg资源方式实现的具体代码如下
//根布局 root = findViewById(R.id.root); //获取Uri格式的资源文件路径 Uri uri = Uri.parse( ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/" + R.drawable.ic_bd04); //创建svg转换库中定义的 ImageView final SVGImageView svgImageView = new SVGImageView(this); svgImageView.setImageURI(uri); svgImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); //将解析svg生成的ImageView添加到根布局界面 root.addView(svgImageView);
- add外部svg资源方式实现的具体代码如下
private SVGImageView getSVGImageView() { final SVGImageView svgImageView = new SVGImageView(this); File file = new File(filePath); Uri uri = Uri.fromFile(file); svgImageView.setImageURI(uri); svgImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); return svgImageView;}
*注意格式 Uri uri = Uri.parse("file:///storage/emulated/0/svg/bg03.svg");以上是直接使用引用库中的SVGImageView类直接把svg文件转换成ImageView的,SVGImageView是继承ImageView的扩展类。*
4.同样库中也提供了其它的转化和操作方式:
final SVGImageView svgImageView = new SVGImageView(this);SVG svg=SVG.getFromInputStream(new FileInputStream(uri.getPath()));svgImageView.setSVG(svg);svgImageView.setImageURI(uri);
可以通过SVG类直接操作文件流绑定SVGImageView,同样返回ImageView可以根据项目需要自己更改或者扩充库中的函数,当前只是根据需要做了预研,其它的功能和方式就没有单独去做验证。结合网络的svg加载可以结合使用Glide
*根据需要大家也可以去看看下面的文章https://blog.csdn.net/weixin_33826609/article/details/86877368Glide讲解 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html*
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- android 动态创建View
- Activity实现自定义Dialog
- android TextView 更换字体
- Android按键事件——上层与驱动的映射
- Android(安卓)自定义TitleBar