使用背景
有些情况下我们安卓要展示一些svg格式的文件,例如要展示一些各种场景下图纸的svg格式文件(这里不是通过android studio进行导入),通常这些文件我们存放到android project下的assets文件夹中,在比如我们需要从后台下载svg格式的图片保存到本地然后在进行展示加载,这时候我们可以通过android WebView控件进行加载文件。
webView 加载项目assets中的svg文件
android 页面的xml布局就不多说了,就是一个webView控件,下面我们看一下代码,需要对webView进行设置一些相关的属性,然后在进行加载assets中的svg文件。
//设置webView
WebSettings webSettings=binding.wbViewOne.getSettings();
webSettings.setLoadWithOverviewMode(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true);
binding.wbViewOne.getSettings().setBuiltInZoomControls(true);// 会出现放大缩小的按钮
binding.wbViewOne.getSettings().setSupportZoom(true);
binding.wbViewOne.getSettings().setSupportMultipleWindows(true);
binding.wbViewOne.setInitialScale(75);
//加载assets中的svg
binding.wbViewOne.loadUrl("file:///android_asset/bixin.svg");
webView 加载手机存储中的svg文件
我们为了方便演示就把文件放到手机储存中的项目包名路径下,因为放到对应的软件包名下面,这里可以直接进行文件的访问权限,其实加载手机存储中的svg文件和加载assets中的文件webView的配置差不多,但是我们要注意因为webView要访问我们内部存储中的文件,我们要在WebSetting中添加允许读取本地文件的代码 webSettingsTwo.setAllowFileAccess(true);这样才能访问到文件。
//设置WebSettings
WebSettings webSettingsTwo=binding.wbViewTwo.getSettings();
webSettingsTwo.setLoadWithOverviewMode(true);
webSettingsTwo.setJavaScriptEnabled(true);
webSettingsTwo.setUseWideViewPort(true);
//允许读取本地文件
webSettingsTwo.setAllowFileAccess(true);
binding.wbViewTwo.getSettings().setBuiltInZoomControls(true);// 会出现放大缩小的按钮
binding.wbViewTwo.getSettings().setSupportZoom(true);
binding.wbViewTwo.getSettings().setSupportMultipleWindows(true);
binding.wbViewTwo.setInitialScale(75);
//加载手机存储本地的svg
binding.wbViewTwo.loadUrl("file://"+ getExternalFilesDir(null) + "/newSvg.svg");
我们来看一下2种情况下运行效果图,这里的素材是来着iconfont上的资源,另外如果要是仅仅为了单纯引入一些素材图标svg的话我们可以直接使用android studio进行导入到drawable中使用ImageView进行直接展示.
使用背景
有些情况下我们安卓要展示一些svg格式的文件,例如要展示一些各种场景下图纸的svg格式文件(这里不是通过android studio进行导入),通常这些文件我们存放到android project下的assets文件夹中,在比如我们需要从后台下载svg格式的图片保存到本地然后在进行展示加载,这时候我们可以通过android WebView控件进行加载文件。
webView 加载项目assets中的svg文件
android 页面的xml布局就不多说了,就是一个webView控件,下面我们看一下代码,需要对webView进行设置一些相关的属性,然后在进行加载assets中的svg文件。
//设置webView
WebSettings webSettings=binding.wbViewOne.getSettings();
webSettings.setLoadWithOverviewMode(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setUseWideViewPort(true);
binding.wbViewOne.getSettings().setBuiltInZoomControls(true);// 会出现放大缩小的按钮
binding.wbViewOne.getSettings().setSupportZoom(true);
binding.wbViewOne.getSettings().setSupportMultipleWindows(true);
binding.wbViewOne.setInitialScale(75);
//加载assets中的svg
binding.wbViewOne.loadUrl("file:///android_asset/bixin.svg");
webView 加载手机存储中的svg文件
我们为了方便演示就把文件放到手机储存中的项目包名路径下,因为放到对应的软件包名下面,这里可以直接进行文件的访问权限,其实加载手机存储中的svg文件和加载assets中的文件webView的配置差不多,但是我们要注意因为webView要访问我们内部存储中的文件,我们要在WebSetting中添加允许读取本地文件的代码 webSettingsTwo.setAllowFileAccess(true);这样才能访问到文件。
//设置WebSettings
WebSettings webSettingsTwo=binding.wbViewTwo.getSettings();
webSettingsTwo.setLoadWithOverviewMode(true);
webSettingsTwo.setJavaScriptEnabled(true);
webSettingsTwo.setUseWideViewPort(true);
//允许读取本地文件
webSettingsTwo.setAllowFileAccess(true);
binding.wbViewTwo.getSettings().setBuiltInZoomControls(true);// 会出现放大缩小的按钮
binding.wbViewTwo.getSettings().setSupportZoom(true);
binding.wbViewTwo.getSettings().setSupportMultipleWindows(true);
binding.wbViewTwo.setInitialScale(75);
//加载手机存储本地的svg
binding.wbViewTwo.loadUrl("file://"+ getExternalFilesDir(null) + "/newSvg.svg");
我们来看一下2种情况下运行效果图,这里的素材是来着iconfont上的资源,另外如果要是仅仅为了单纯引入一些素材图标svg的话我们可以直接使用android studio进行导入到drawable中使用ImageView进行直接展示,可以看我写的上一篇文章。
## 文末 如果你想成为架构师,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。
一、架构师筑基必备技能
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
……
二、Android百大框架源码解析
1.Retrofit 2.0源码解析
2.Okhttp3源码解析
3.ButterKnife源码解析
4.MPAndroidChart 源码解析
5.Glide源码解析
6.Leakcanary 源码解析
7.Universal-lmage-Loader源码解析
8.EventBus 3.0源码解析
9.zxing源码分析
10.Picasso源码解析
11.LottieAndroid使用详解及源码解析
12.Fresco 源码分析——图片加载流程
三、Android性能优化实战解析
- 腾讯Bugly:对字符串匹配算法的一点理解
- 爱奇艺:安卓APP崩溃捕获方案——xCrash
- 字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
- 百度APP技术:Android H5首屏优化实践
- 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
- 携程:从智行 Android 项目看组件化架构实践
- 网易新闻构建优化:如何让你的构建速度“势如闪电”?
- …
四、高级kotlin强化实战
1、Kotlin入门教程
2、Kotlin 实战避坑指南
3、项目实战《Kotlin Jetpack 实战》
-
从一个膜拜大神的 Demo 开始
-
Kotlin 写 Gradle 脚本是一种什么体验?
-
Kotlin 编程的三重境界
-
Kotlin 高阶函数
-
Kotlin 泛型
-
Kotlin 扩展
-
Kotlin 委托
-
协程“不为人知”的调试技巧
-
图解协程:suspend
五、Android高级UI开源框架进阶解密
1.SmartRefreshLayout的使用
2.Android之PullToRefresh控件源码解析
3.Android-PullToRefresh下拉刷新库基本用法
4.LoadSir-高效易用的加载反馈页管理框架
5.Android通用LoadingView加载框架详解
6.MPAndroidChart实现LineChart(折线图)
7.hellocharts-android使用指南
8.SmartTable使用指南
9.开源项目android-uitableview介绍
10.ExcelPanel 使用指南
11.Android开源项目SlidingMenu深切解析
12.MaterialDrawer使用指南
六、NDK模块开发
1、NDK 模块开发
2、JNI 模块
3、Native 开发工具
4、Linux 编程
5、底层图片处理
6、音视频开发
7、机器学习
七、Flutter技术进阶
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter开发环境搭建和调试
5、Dart语法篇之基础语法(一)
6、Dart语法篇之集合的使用与源码解析(二)
7、Dart语法篇之集合操作符函数与源码分析(三)
…
八、微信小程序开发
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战……
全套视频资料:
一、面试合集
二、源码解析合集
三、开源框架合集
欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取【保证100%免费】↓↓↓