技术标签: 【Android进阶】
要求在网页里面调用android app中assets目录下的某个字体文件。
网页加载通常有两种方式:
1、loadDataWithBaseURL
2、loadUrl
网页中直接使用file://指定assets文件路径即可
示例:
font-family: url('file:///android_asset/xxx.TTF')
这种情况网页中不能直接使用file://来指定文件路径,否则会如下错误。
"Not allowed to load local resource: file:///android_asset/fonts/xxx.TTF"
正确做法:必须通过WebView来拦截。
1、在网页中指定字体
font-family: url('/android_asset_font/xxx.TTF')
2、重写WebViewClient 的shouldInterceptRequest方法
String INJECTION_TOKEN = "/android_asset_font/";
@Override
public WebResourceResponse shouldInterceptRequest(WebView webView, String url) {
if (url != null && url.contains(INJECTION_TOKEN)) {
try {
String assetPath = url.substring(url.indexOf(INJECTION_TOKEN) + INJECTION_TOKEN.length(), url.length());
return new WebResourceResponse(
"application/octet-stream",
"UTF8", getContext().getAssets().open(assetPath)
);
} catch (Exception e) {
e.printStackTrace();
}
}
return super.shouldInterceptRequest(webView, url);
}
参考:
https://stackoverflow.com/questions/19997146/kitkat-kills-not-allowed-to-load-local-resource-file-android-asset-webkit-a/20992306#20992306
文章浏览阅读433次。queue(队列)是一种容器适配器,它提供了一种先进先出(FIFO)的数据结构。特点:queue是一种具有特定功能的容器,它在队尾进行元素的插入操作,而在队头进行元素的删除操作。插入操作称为入队(push),删除操作称为出队(pop)。队列中的元素按照先进先出的顺序进行处理。使用容器:queue的实现通过在内部使用其他容器来存储元素。默认情况下,STL中的queue使用deque(双端队列)作为底层容器。也可以通过指定其他容器类型来创建自定义底层容器的queue。_stl stack 的底层
文章浏览阅读1.5k次。1、 QTP专业网站http://www.advancedqtp.com/http://knowledgeinbox.com/http://www.learnqtp.com/http://relevantcodes.com/http://www.intellipro.co.uk/http://www.softwareinquisition.com/http://www_qtp10使用教程
文章浏览阅读479次。本文是转载信息如下,如有侵权,立删,原作者信息章骏| 才云科技云开源软件工程师毕业于武汉大学软件工程专业,之前就职于百度,担任算法策略研发工程师,主要负责搜索相关性的指标。加入才云科技后,现主要负责负载均衡和灰度发布的工作。今天给大家介绍一下如何使用 client-go 来拓展 Kubernetes API,写一个 Kubernetes 的控制器。client-go 是 Kuber..._client go api
文章浏览阅读1.2w次。at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303) at org.apach_zip文件读取 java.util.zip.zipexception: invalid end header
文章浏览阅读276次。好久没写代码,也不知为何,上一趟csdn,难的看不懂,简单的不屑看,眼高手低说的就是我了。。也不知道从什么地方提高自己,对我来说,什么东西似乎都能说上一点,但是再往后,知识储备就不足了,再继续写下去也怕误人子弟。也许有生之年,我能补完自己之前埋下的坑呢?。。这次准备长期写下去的就是源码解读,有一说一,我不喜欢像某些csdn的5年,10年的账号一样,一天到晚发一些基础知识,啃老本,我甚至怀疑..._jdk源码 字符串比较为什么用==
文章浏览阅读2.6k次,点赞5次,收藏16次。1、GSteamer的基本API的使用2、创建元件并且链接起来3、添加衬垫,添加回调,手动链接衬垫4、打印gstreamer的版本信息5、gstreamer封装的argparse6、创建gst元件对象7、查看插件8、链接元件9、箱柜(箱柜本身是一个元件,但是它内部还可以是一串链接起来的元件)10、bus总线..._gst_parse_launch
文章浏览阅读1.1k次。转自:https://www.jianshu.com/p/ccb491ed4260KSFramework是一个Unity 5 Asset Bundle开发框架和工具集,专注于运行时热重载,使用了SLua作为脚本引擎。https://github.com/mr-kelly/KSFrameworkKSFramework是一个整合KEngine、SLua和一些开发组件组成的全功能Unity 5开发框架,..._ksframework怎么样
文章浏览阅读1k次。这个指令会打印出文件的权限 (-rw-rw-r-- 之后我们在细说这个), 用户名, 文件大小, 修改日期, 文件名。功能:查看文件/文件夹内容,支持排序、大小、属性、权限查看。功能:这里的文件大小使用了 K, MB, GB 之类概括。功能:显示所有文件,包括隐藏的文件 (以 . 开头的)2)ls -a (all 的简写) 显示所有文件。功能:输出详细信息 -l (long 的简写)3)ls -lh (human) 显示给人看。4)ls --help 帮助。功能:查看当前目录绝对路径。功能:进入指定目录。_cd查看目录
文章浏览阅读615次。#range函数建立#range函数是内置函数,可以直接调用#range对象所占内存相同,只有使用时才能range对象表示的列表内容不同i=range(5)print(list(i))#[0, 1, 2, 3, 4]j=range(2,5)print(list(j))#[2, 3, 4]z=range(1,5,2)print(list(z))#[1, 3]print(3 in z)#Trueprint(2 not in z)#True#while语句-循环语句a=0 ._range等于range+i
文章浏览阅读622次。本期关键词:数字孪生、AI铁路人、道岔、施封锁、图像质量评价、大模型小型化
文章浏览阅读238次。01.借鉴:网页JS弹出广告代码,头部,右下角,网页中漂浮,对联广告代码等大全 02.网页头部弹出广告: 03.<!--首页头部广告--> 04.<script src="http://www.ce.cn/inc1/top_ad.js" type="text/javascript" language="javascript"></script&g..._春节 网站弹出banner js代码
文章浏览阅读138次。假设当前表结构如下:food表字段有foodid,name,外键businessid,外键typebusiness表字段有,name,外键typetype表字段有id,name,foodidHibernate生成的对应POJO分别是Food,Business,Type需要查询food表部分字段,如name和外键businessid则可在Food类中添加只有相应成员变量的构造方法,Food(Stri..._hibernate 外键查询为null