我想将webview的默认字体更改为自定义字体.我正在使用webview开发Android的双语浏览器应用程序.
我尝试通过将自定义字体放在资源中来获取自定义字体的实例.但仍然无法将webview的默认字体设置为我的字体.
这是我试过的:
Typeface font = Typeface.createFromAsset(getAssets(), "myfont.ttf");
private WebView webview;
WebSettings webSettings = webView.getSettings();
webSettings.setFixedFontFamily(font);
Run Code Online (Sandbox Code Playgroud)
任何人都可以更正此或建议任何其他方法将webview的默认字体更改为自定义字体?
谢谢!
我在Rhomobile 5.0.2 WebView应用程序中的Android 4.4.2 Moto X 2013上收到以下错误.该应用程序使用SDK 19和minAPI级别17进行编译.
经过一些研究后,似乎这是Snapdragon 800/Adreno GPU设备的一个问题:
https://code.google.com/p/android/issues/detail?id=63738 https://code.google.com/p/android/issues/detail?id=71742
禁用硬件加速并不是一个真正的选择,因为它使WebView非常缓慢.
由于错误是:
dequeueBuffer: can't dequeue multiple buffers without setting the buffer count
Run Code Online (Sandbox Code Playgroud)
如何在com.rhomobile.rhodes.RhodesActivity中设置缓冲区计数?
11-08 18:28:31.227: I/SFPerfTracer(238): triggers: (rate: 0:0) (423387 sw vsyncs) (0 skipped) (0:361861 vsyncs) (2:863582)
11-08 18:28:31.328: W/Adreno-EGLSUB(4749): <DequeueBuffer:593>: dequeue native buffer fail: Unknown error 2147483646, buffer=0x61213afc, handle=0x0
11-08 18:28:31.331: W/Adreno-EGLSUB(4749): <SwapBuffers:1343>: Invalid native buffer. Failed to queueBuffer
11-08 18:28:31.331: W/Adreno-EGLSUB(4749): <updater_thread:456>: native buffer is NULL
11-08 18:28:31.346: E/BufferQueue(238): [com.myapp.myapp/com.rhomobile.rhodes.RhodesActivity] dequeueBuffer: can't dequeue multiple buffers …Run Code Online (Sandbox Code Playgroud) 我正在开发一个语言词典应用程序.我将喜爱的单词保存到Preference中.XML文件中的收藏夹内容如下所示:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="history">
dict_name::160170::hi,dict_name::157140::he-man,dict_name::184774::jet,dict_name::34527::black
</string>
<string name="waitingTime">
0
</string>
<boolean name="saveFavourite" value="true" />
<string name="defaultDictionary">
dict_name
</string>
<string name="favourite">
dict_name::149271::go,dict_name::25481::back,dict_name::184774::jet
</string>
<boolean name="saveHistory" value="true" />
</map>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码将收藏内容加载到webview中:
public class User extends Activity {
private static final String FAVOURITE_TAG = "[MyDict - FavouriteView] ";
private static final String CONTENT_TAG = null;
private ListView mLSTFavourite = null;
private ArrayList<String> lstDict = null;
private ArrayList<Integer> lstId = null;
private ArrayList<String> mWordFavourite = null;
private ArrayAdapter<String> aptList = …Run Code Online (Sandbox Code Playgroud) 如果网站在ipad safari中运行或在应用程序WebView中运行,是否有办法通过javascript进行区分?
我有一个移动网站,里面有一些HTML input元素,如下所示:
<input type="text" name="txtAccessoryCost" size="6" />
Run Code Online (Sandbox Code Playgroud)
我已将该网站嵌入到WebView可能的Android 2.1消费中,因此它也将是一个Android应用程序.
当这个HTML input元素聚焦时,是否可以使用数字而不是默认的键盘来获得键盘?
或者,如果HTML元素不可行,是否可以为整个应用程序(可能是Manifest文件中的某些内容)设置它?
我有一个服务器,它向我的Android应用程序发送一个会话cookie,用于认证通信.我正在尝试使用指向同一服务器的URL加载WebView,并且我正在尝试传递会话cookie以进行身份验证.我观察到它间歇性地工作,但我不知道为什么.我使用相同的会话cookie在我的服务器上进行其他调用,这些调用永远不会失败.我只是在尝试在WebView中加载URL时才发现此问题,并且每次都不会发生这种情况.很沮丧.
下面是我用来执行此操作的代码.任何帮助将不胜感激.
String myUrl = ""http://mydomain.com/";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
Cookie sessionCookie = getCookie();
if(sessionCookie != null){
String cookieString = sessionCookie.getName() +"="+sessionCookie.getValue()+"; domain="+sessionCookie.getDomain();
cookieManager.setCookie(myUrl, cookieString);
CookieSyncManager.getInstance().sync();
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
webView.loadUrl(myUrl);
Run Code Online (Sandbox Code Playgroud) 我的应用程序正在使用JSoup下载留言板页面的HTML(假设在这种情况下它是一个包含给定线程的帖子的页面).我想使用这个HTML,删除不需要的项目,并应用自定义CSS将其设置为在WebView中"移动".
我应该在处理HTML时将样式注入到HTML中(因为我还是会处理它),或者有一种很好的方法可以将CSS文件添加到我的应用程序的资源中并简单地引用它.我认为后者是理想的,但不确定如何去做.
我在WebView的loadDataWithBaseURL中看到了一些提示,你可以引用本地资产,但不知道如何利用它.
public void onCreate(Bundle savedInstance)
{
super.onCreate(savedInstance);
setContentView(R.layout.show_voucher);
webView=(WebView)findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
String url ="https://www.paymeon.com/Vouchers/?v=%C80%8D%B1x%D9%CFqh%FA%84%C35%0A%1F%CE&iv=%25%EE%BEi%F4%DAT%E1"
//webView.loadUrl(url); // Not Working... Showing blank
webView.loadUrl("http://www.yahoo.com"); // its working
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在WebBView中加载URL时,它只显示一个空白屏幕.如果我加载Google.com或yahoo.com,它运行正常.
我试图让WebView具有与Android浏览器类似的行为.浏览器以试图使其宽度适合屏幕的方式打开所有页面.但是,WebView的默认行为是以100%像素比例开始,因此它会在左上角开始放大.
我花了最近几个小时试图找到一种方法让WebView将页面缩放到屏幕,就像在浏览器中一样,但我没有运气.有人找到了实现这个目标的方法吗?
我看到的是一个名为setLoadWithOverviewMode的设置,但它似乎根本没有做任何事情.我还尝试了setInitialScale,但是在不同的屏幕尺寸和网页尺寸上,它们不像浏览器缩放那样优雅.
任何人有任何线索?
谢谢
编辑:布莱恩的方法似乎适用于手机在风景但不是肖像.在肖像中,它很接近,但仍然不适合页面中的整个屏幕.我开始这个赏金,希望有一个确定的方法来获得初始缩放以使页面适合任何方向或屏幕大小的页面宽度.
我在我的Android应用程序中使用了一些webview,但无法使它们以utf-8编码显示.
如果使用这个我不会看到我的斯堪的纳维亚字符:
mWebView.loadUrl("file:///android_asset/om.html")
Run Code Online (Sandbox Code Playgroud)
如果尝试这个,我根本不会显示任何东西
mWebView.loadDataWithBaseURL("file:///android_asset/om.html", null, "text/html", "utf-8",null);
Run Code Online (Sandbox Code Playgroud)
问候