1. 程式人生 > >Android 4.1.x Stock Browser Canvas Solution

Android 4.1.x Stock Browser Canvas Solution

Android 4.1.x Stock Browser Canvas Solution

Canvas clearRect fix

There is currently an issue on Android 4.1.x and some 4.2.x stock browsers where the canvas clearRect function doesn’t work correctly sometimes.

The issue occurs predominantly when using clearRect in a setTimeout or in the request animation frame.
The solution that has been suggested is to use is

canvas.width = canvas.width;

This works but also causes some browsers to crash especially if used in a game loop running at 60fps.

I have found a better solution that does not cause browsers to crash.

The following code fixes the canvas clearRect issue but if clearing very often it causes a bit of a delay in the clearing:

canvas.clearRect(0, 0, w, h);
canvas.style.visibility = ‘hidden’;
// Force a change in DOM
canvas.offsetHeight;
// Cause a repaint to take play
canvas.style.visibility = ‘inherit’;
// Make visible again

If you use the following it fixes the delayed clearing but on certain devices using this causes anti-aliasing of the canvas when reattaching the canvas into DOM.

canvas.clearRect(0, 0, w, h);
canvas.style.display = ‘none’;
// Detach from DOM
canvas.offsetHeight;
// Force the detach
canvas.style.display = ‘inherit’;
// Reattach to DOM

A nice way to implement this is to override the native clearRect functionality and add the 3 lines of code needed to force the clearing.

I have tested this solution on the devices listed below:

Devices tested on Android 4.1.1 & 4.1.2:
Samsung S3
Samsung Galaxy Note 2
Samsung S3 Mini

Fix needed on 4.2.x devices
Samsung Galaxy Note 8
Samsung Galaxy Nexus

相關推薦

Android 4.1.x Stock Browser Canvas Solution

Android 4.1.x Stock Browser Canvas SolutionCanvas clearRect fixThere is currently an issue on Android 4.1.x and some 4.2.x stock browsers where the canvas

Android 4.1 Audio系統變化說明

興趣 oop cau none bstr sta 解決 應用 sco 轉自Android 4.1 Audio系統變化說明 Android 4.1,英文代號簡稱JB。在國人眼裏,JB這個詞還和動物有點關系。Google如此頻繁修改Android,終於推出了一個可以被大

Android模擬器中Android 4.1 API Level 16的映象安裝Google Play Services服務

最近做一些國外的Android小APP開發,遇到了適配Android版本的問題。但是開發出來的APP一般都習慣上選擇最小相容版本16,也就是Android4.1。但是用到google地圖等api的時候,在android 5.0(API 21)之後總是沒有問題,但

Android 4.1對於多種解析度圖片的引用問題

今天在做專案的時候發現一個比較奇怪的現象: 就是在放置開機啟動畫面的時候,一般情況下Android對於不同的解析度的圖片都會進行適配,drawable-hdpi放入480X960 mdpi放入320X480 xhpi放入1080X720圖片,但是在小米2手機適配時,開機啟動

Android 4.1 Music 通知欄的音樂控制

本文根據原生Android 4.1.1 Music 原始碼做修改。 1 原生Music 暫停的時候,會刪除通知欄上的通知。 2 原生Music 通知欄不能控制音樂,比如下一首,上一首,暫停/播放。 一 解決思路: 1 接到暫停廣播時,只暫停,不去除通知。 /packages

spring security 4.1.x入門

許可權控制在網頁開發中是很重要的一部分,最基本的就是用form進行賬號密碼的認證,更復雜的可能控制的粒度會更細一些,spring securty相關的資訊在網上可以搜到很多,入門的例程更是多不勝數,但是在我學習瞭解的過程中,卻發現沒有一個簡單易懂的,給學習之路帶

Android 4.1原始碼編譯找不到資原始檔解決辦法

我們在Android framework中修改資原始檔時,在Android 4.0之前,都是直接在sourcecode/frameworks/base/core/res/res下面新增對應的資原始檔,然後編譯framework-res即可,但是這種情況到了Android

android 4.1 hdmi 開關

需求:通過程式碼控制HDMI輸出開關 思路:參考android系統設定Settings原始碼中HDMISettings.java 問題:無法呼叫IWindowManager和ServiceManager 解決辦法: java反射機制 呼叫android得

Android 4.1.2開機音樂與動畫的程式碼

本來在android4.0.4中使用libmedia的時候採用瞭如下方式: #define SYSTEM_BOOTMUSIC_FILE "/system/media/sound.ogg" int index; MediaPlayer* mp =

泛泰A820L (高通MSM8660 cpu) 3.4內核的CM10.1(Android 4.2.2) 測試版第二版

卸載 反饋 span lin clas wan 系統分區 漢化 sof 歡迎關註泛泰非盈利專業第三方開發團隊 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大師) loogeo

android.graphics(1) - Paint, Canvas, drawLine, drawPoint, drawRect, drawRoundRect, drawCircle, drawOval, drawArc

cto 舉例 pro cti ova lin 函數 傾斜 find 一、Paint與Canvas 像我們平時畫圖一樣,需要兩個工具,紙和筆。Paint就是相當於筆,而Canvas就是紙,這裏叫畫布。 所以,凡有跟要要畫的東西的設置相關的,比如大小,粗細,畫筆顏色,

Android 4.X 系統加載 so 失敗的原因分析

tabs mod ext 問題 用戶 統計數據 crash 情況 text 1 so 加載過程 so 加載的過程可以參考小米的系統工程師的文章loadLibrary動態庫加載過程分析 2 問題分析 2.1 問題 年前項目裏新加了一個 so庫,但發現native 方法的找不到

Speedtest網速測試(4.1.1)去廣告高級版 Android

高級 blank 今天 環境 介紹 speed 結果 htm div Speedtest是一個網絡測試的工具,也有電腦端的,今天分享一個安卓應用的以去除廣告升級為高級版。它只需30就能測試到你的網絡環境和寬帶速度! 修改介紹 * 已破解高級功能 * 去除內置廣告實用軟件 *

Android異步框架RxJava 1.x系列(一) - 觀察者模式及實現

from 預覽 目錄 ole 普通 清零 handler 使用 tps Android異步框架RxJava 1.x系列(一) - 觀察者模式及實現 前言 RxJava 是一款基於 Java VM 實現的響應式編程擴展庫 - 基於觀察者模式的異步和事件處理框架。RxJava

Android異步框架RxJava 1.x系列(二) - 事件及事件序列轉換原理

方式 名稱 pri 新的 pos strong 之一 調度 star 前言 在介紹 RxJava 1.x 線程調度器之前,首先引入一個重要的概念 - 事件序列轉換。RxJava 提供了對事件序列進行轉換的支持,這是它的核心功能之一。 正文 1. 事件序列轉換定

Android Studio安裝部署系列】三十六、從Android Studio3.1.4升級到Android studio3.2【以及創建android p模擬器(未成功)】

tps min 比較 安裝 bsp mda 下載 initial uil 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 概述 因為想要使用Android P模擬器,所以需要將Android Studio升級到3.2版本以上。 按照官網的說法:參考《ht

Android Studio3.1.4如何添加Genymotion插件並顯示

icon del manage motion com 彈出 方便 box fix Genymotion是一款更加優秀專業高性能的安卓 Android 模擬器。對於Android開發人員來說,使用Android Studio自帶的模擬器雖然簡單方便,但會影響他們的開發時間和工

OpenCV各版本差異與演化,從1.x4.0

部落格:blog.shinelee.me | 部落格園 | CSDN 寫在前面 最近因專案需要,得把OpenCV撿起來,登入OpenCV官網,竟然發現release了4.0.0-beata版本,所以藉此機會,查閱資料,瞭解下OpenCV各版本的差異及其演化過程,形成了以下幾點認識: 新版本的產生是

android studio3.1.4更新3.2.1版本問題彙總

1.更新連線超時,是網路問題,之前我以為得翻牆,原來是公司網路太慢了。 2.android studio 3.2.1 編譯程式 報錯 Unknown host ‘android-mirror.bugly.qq.com’. You may need to adjust the proxy

Android非同步框架RxJava 1.x系列(二)

前言 在介紹 RxJava 1.x 執行緒排程器之前,首先引入一個重要的概念 - 事件序列轉換。RxJava 提供了對事件序列進行轉換的支援,這是它的核心功能之一。 正文 1. 事件序列轉換定義 所謂轉換,就是將事件序列中的物件或整個序列進行加工處理,轉換成