你如何得到一个TextView被证明的文本(在左侧和右侧有文字冲洗)?
我在这里找到了一个可能的解决方案,但它不起作用(即使你将vertical-center更改为center_vertical等).
现在我想显示一些unicode字符,我使用了tag : <font face="
Arial">something here</font>. 但似乎WebView找不到Arial字体,因为我只能看到UFO字符.我是否必须将arial.ttf复制到某处或者如何使用此TrueType字体WebView?谢谢.
PREAMBLE:从API 17(Android 4.2)开始,有一种方法TextView.setTextLocale()可以明确地解决TextViews和派生类的这个问题.分配日语语言环境(Locale.JAPAN),Unihan字符将显示日语.
我在Android上有一个应用程序,它在WebViews和TextViews中显示日文文本.按照惯例,在中国和日本,有一些汉字(汉字)看起来不同,但共享相同的Unicode码点.通常,浏览器会依赖lang标签来选择正确的字形.在Android上,它们都默认为中文形状,我想要日本形状.
这篇文章很好地解释了这个问题.本文也可以作为问题的完美例证 - 当在Android上观看(最多2.2)时,"语言相关字符示例"中的字符看起来都是一样的,中文也是如此.
使用该lang="ja"属性没有帮助.将整个系统区域设置切换为日语也无济于事.
我想知道在日本销售的Android手机.像rect,今,化这样的人物也会看起来像中国式吗?我假设不是.
所以问题是:那里有Android官方本地化图片吗?我可以让一个人在模拟器上运行吗?DroidSansFallback字体仍然是那些唯一支持CJK的字体吗?如果是的话,它与香草美国Android上的相同吗?
我有点希望日语字形隐藏在字体深处(Unicode私有区域或其他东西).如果是这样,我可以利用它们......
编辑:位于DroidSansJapanese.ttf,通过复制到/ system/fonts,重新启动它在模拟器上安装.它对Unihan文章的外观没有任何影响.即使日文输入的提示区域(应该知道更好)也显示为中文.
我怎么知道DroidSansJapanese.ttf的字体名称?我觉得它仍然是Droid Sans,与内置的DroidSansFallback字体相同.但是,如果它们包含相同的字体,那么哪个应该优先考虑?有人会想 - 系统区域设置,但显然不是.Android中的字体只是通过复制安装,对吗?
我有数据库,其中数据存储在印地文中,\u092e\u0948\u0902 \u0924\并使用下面的内容将该内容设置为webview.
webview1.loadData(hindi_content, "text/html", "UTF-8");
Run Code Online (Sandbox Code Playgroud)
但它会显示为

我不知道为什么会这样.任何人请建议.如何解决这个问题!
我想改变加载到WebView中的html字符串的字体,就像这个问题中提到的那样:
不同之处在于我没有使用旧方法将字体文件存储在assets文件夹中,但我将它们存储在res/font中,如"字体在XML中"android字体支持文档中所述:
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
现在,我显然不能使用:
file:///android_asset/fonts/my_font.otf
我试过了:
file:///android_res/font/my_font.otf
以及在res/font文件夹中描述我的字体路径的许多其他方法,但它们都不起作用.
如果我的字体存储在res/font文件夹中,如何为加载html字符串的WebView使用自定义字体系列?
//编辑:
我目前的实施不起作用是:
@BindingAdapter("loadData")
public static void loadData(WebView webView, String htmlData) {
webView.loadDataWithBaseURL(null, htmlData, "text/html", "utf-8", null);
}
@BindingAdapter({"loadData", "fontFamily"})
public static void loadData(WebView webView, String htmlData, @FontRes int fontFamilyId) {
TypedValue value = new TypedValue();
ApplicationActivity.getSharedApplication().getResources().getValue(fontFamilyId, value, true);
String fontPath = value.string.toString();
File fontFile = new File(fontPath);
String prefix = "<html>\n"
+"\t<head>\n"
+"\t\t<style type=\"text/css\">\n"
+"\t\t\t@font-face {\n"
+"\t\t\t\tfont-family: 'CustomFont';\n"
+"\t\t\t\tsrc: url(\"file:///android_res/font/"+fontFile.getName()+"\")\n"
+"\t\t\t}\n"
+"\t\t\tbody {\n"
+"\t\t\t\tfont-family: 'CustomFont';\n"
+"\t\t\t}\n"
+"\t\t</style>\n"
+"\t</head>\n"
+"\t<body>\n";
String …Run Code Online (Sandbox Code Playgroud) 我无法在WebView for Xolo,Sony Xperia,Nexus Tab设备中显示Gujarati Font.任何人都可以帮我解决这个问题吗?
我正在尝试为我的Web视图建立一个新的自定义字体(otf文件).
我把anbaaarabic_bold.otf放在资产文件中.
我是怎么做的:
String head = "<head><style>@font-face {font-family: 'verdana';src: url('file://"+ getActivity().getFilesDir().getAbsolutePath()+ "/anbaaarabic_bold.otf');}body {font-family: 'verdana';}</style></head>";
String htmlData= "<html>"+head+"<body style=\"font-family: verdana\">"+body+"</body></html>" ;
mBodyArticle.loadDataWithBaseURL("http://nada", htmlData,
"text/html", "utf-8", "");
Run Code Online (Sandbox Code Playgroud)
body:包含我的html代码.
我不知道为什么字体不能用于我的webview.body html字体不会改变.
在我的使用网络视图的Android应用中使用Google网络字体时,它们在Android 4.4版本中运行良好.Android 4.2的某些设备显示默认字体,大多数设备正常工作.但是在Android 4.0上,所有字体都默认使用相同的默认字体.
因为我们希望使用我们的应用程序定位Android 4.0及更高版本,所以我正在寻找一种方法来让Google网络字体可靠地运行.
该应用程序只是在Web视图中从服务器打开html文件.
更新:事实证明,某些Android 4.2.2设备无法正确显示Google网络字体.目前尚不清楚是什么让这些设备与我测试的设备以及网络字体正常工作的地方脱颖而出.
如何使Web字体在不同的Android版本和设备上可靠地运行?
我正在开发一个应用程序,它有一个活动/片段,显示某些网站的网页.Android webview(chrome)正在弹出警报对话框,用于订阅其中一些推送通知,这会导致奇怪的闪烁/闪烁问题.
这是webview及其设置的部分
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(false);
webSettings.setDomStorageEnabled(true);
webSettings.setAppCacheEnabled(true);
webSettings.setAppCacheMaxSize(5 * 1024 * 1024);
webSettings.setAppCachePath("");
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webSettings.setUserAgentString(mUserAgent);
webView.setBackgroundColor(Color.argb(1, 0, 0, 0));
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
BaseWebViewFragment.this.onReceivedTitle(title);
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
progressChanged(view, newProgress);
}
});
Run Code Online (Sandbox Code Playgroud)
我需要完全禁用这些弹出窗口,但无法找到方法.
我尝试完全禁用JS,但它导致某些网站的加载问题.
我也尝试覆盖WebChromeClient的onJS ...()方法并取消/确认结果,但无济于事.
这是什么工作方法?
我目前将我的应用重构为使用可下载字体,因此我没有任何字体资产文件。我进行了很多搜索,唯一看到的解决方案是在CSS文件中设置FontFamily,并将src指向资产文件夹。对于可下载的字体,这是不可能的。
android font-face android-webview android-downloadable-fonts
我的应用程序必须在Web视图中显示来自HtmlString的印地文文本
HtmlString ="<html><body style='background-color:#000000; color:ffffff; font-family:georgia,times new roman,times,seri,krutidev010; margin-top:0px; margin-bottom:0px; margin-right:0px; margin-left:0px; padding:0px;'><div style='padding:0px;'></div><div style='padding:5px;'><b>"+SharedVariables.ArrayOfNewsItems.get(SelectedRow).getTitle()+"</b><p align='justify'>"+SharedVariables.ArrayOfNewsItems.get(SelectedRow).getContent()+"</p></div><p></p></body></html>";
MyWebView.loadData(HtmlString, "contentType=text/html", "charset=UTF-8");
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点.
我想在我的Android应用程序中嵌入自定义字体.我不使用的TextView所以这样的教程为这一个(如何使用与TextView的自定义字体)没有帮助.
在我的例子中,内容来自SQLite数据库,并使用WebView显示在屏幕上.我既不使用捆绑的HTML文件,所以本教程(如何使用WebView自定义字体)也无法解决我的问题.
FIY,这是我的代码:
public void initWebview()
{
WebSettings settings = wvContent.getSettings();
settings.setDefaultTextEncodingName("utf-8");
setContentView(R.layout.content);
wvContent = (WebView) findViewById(R.id.wvContent);
wvContent.setBackgroundColor(Color.argb(250, 250, 250, 250));
wvContent.getSettings().setSupportZoom(true);
wvContent.getSettings().setBuiltInZoomControls(true);
wvContent.setInitialScale(100);
wvContent.setWebViewClient(new WebViewClient()
{
public void onPageFinished(WebView view, String url)
{
if (pd != null)
{
pd.dismiss();
pd = null;
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
Log.i(CONTENT_TAG,"WebView link clicked; url = " + url);
try
{
String arrUrlPart[] = url.split("://");
if (arrUrlPart[0].equals("entry"))
{
String content = getContentByWord(arrUrlPart[1]);
showContent(content);
} …Run Code Online (Sandbox Code Playgroud)