Android Base64的完美解決方案
public class Base64Encoder { private static final char last2byte = (char) Integer .parseInt("00000011", 2); private static final char last4byte = (char) Integer .parseInt("00001111", 2); private static final char last6byte = (char) Integer .parseInt("00111111", 2); private static final char lead6byte = (char) Integer .parseInt("11111100", 2); private static final char lead4byte = (char) Integer .parseInt("11110000", 2); private static final char lead2byte = (char) Integer .parseInt("11000000", 2); private static final char[] encodeTable = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' }; /** * Base64 encoding. * * @param from * The src data. * @return */ public static String encode(byte[] from) { StringBuffer to = new StringBuffer((int) (from.length * 1.34) + 3); int num = 0; char currentByte = 0; for (int i = 0; i < from.length; i++) { num = num % 8; while (num < 8) { switch (num) { case 0: currentByte = (char) (from[i] & lead6byte); currentByte = (char) (currentByte >>> 2); break; case 2: currentByte = (char) (from[i] & last6byte); break; case 4: currentByte = (char) (from[i] & last4byte); currentByte = (char) (currentByte << 2); if ((i + 1) < from.length) { currentByte |= (from[i + 1] & lead2byte) >>> 6; } break; case 6: currentByte = (char) (from[i] & last2byte); currentByte = (char) (currentByte << 4); if ((i + 1) < from.length) { currentByte |= (from[i + 1] & lead4byte) >>> 4; } break; } to.append(encodeTable[currentByte]); num += 6; } } if (to.length() % 4 != 0) { for (int i = 4 - to.length() % 4; i > 0; i--) { to.append("="); } } return to.toString(); } }
相關推薦
Android Base64的完美解決方案
public class Base64Encoder { private static final char last2byte = (char) Integer .parseInt("00000011", 2); pri
Android 中 Fragment 巢狀 Fragment使用存在的bug附完美解決方案
原文地址:https://blog.csdn.net/u014365133/article/details/73176068 自從Android3.0引入了Fragment之後,使用Activity去巢狀一些Fragment的做法也變得更加流行,這確實是Fra
Android 沉浸式狀態列完美解決方案
現在搜尋Android 沉浸式狀態列,真的是一堆一堆,寫的特別多,但是真正用的舒服的真沒有,在這裡自己整理一下開發記錄 注意,在使用這個步驟過程之前,請把之前設定的程式碼註釋一下 把佈局帶有android:fitsSystemWindows註釋掉 style檔案中凡是在style.xml
Unity Android APP il2cpp熱更完美解決方案
1. 簡介 這是Unity Android APP il2cpp熱更完美解決方案的Demo(Git地址)的說明。 和現有的熱更解決方案不同的是,他不會引入多餘的語言(只是UnityScript,c#…),對Unity程式設計和編碼沒有任何限制。你可以在預置和場景裡的GameObjec
android獲取裝置唯一標識完美解決方案
這是Android系統為開發者提供的用於標識手機裝置的串號,也是各種方法中普適性較高的,可以說幾乎所有的裝置都可以返回這個串號,並且唯一性良好。 這個DEVICE_ID可以同通過下面的方法獲取: TelephonyManager tm = (TelephonyManager)getSystemServi
Android中EditText被輸入法軟鍵盤遮擋的完美解決方案(非全屏模式下)
1、不要給EditText的背景設定為@null 清單檔案中為activity設定屬性 程式碼中設定顯示輸入法 android:windowSoftInputMode=”stateVisible
android 6.0, 7.0之動態申請許可權完美解決方案
android 7.0 動態申請許可權工具類 對於實際開發的程式原來說,對許可權申請肯定不會陌生.由於android 6.0 之後有些許可權不僅需要在 mainfest中註冊,
[Android]Delphi/C++ Builder 開發 Android 程式啟動畫面簡單完美解決方案
前面和音兒一起研究 Android 下啟動畫面的問題,雖然問題得到了解決,但是,總是感覺太麻煩,主要的問題: 1、需要手工去修改XML檔案; 2、而且需要對系統本身做出修改; 3、方案還不夠完善,需要較多的步驟; 現在,經常不斷的折騰,終於找到了一個
android獲取裝置唯一標識完美解決方案的思考以及實現方式
前言 由於在開發中需要開發遊客模式,在使用者沒有登入的情況下必須確保裝置的唯一性,於是慣性思維想到的肯定是使用DevicesId 來作為裝置的唯一標識,用以代替使用者登入以後的唯一識別符號。 但是由於國內複雜的rom定製情況,以及使用者許可權禁止的情況。De
Android下zip壓縮檔案加密解密的完美解決方案
前言 一個多月前,因專案需要對Java語言下的zip格式壓縮檔案的處理作了一些瞭解,嘗試了多種開源專案並寫了幾篇部落格做記錄: ZIP4J,作為解決了我的問題的終極解決方案,本來一開始在搜尋引擎上就看到了它的蹤跡,但因天朝的網路環境問題,zi
Android:Activity 與 Fragment 通訊 (99%) 完美解決方案
前言 最近一直在想著能否有一種更好的方案來解決:Android中Activity與Fragment之間通訊的問題,什麼叫更好呢,就是能讓Fragment的複用性高,效能還有好(不用反射),程式碼還要好維護,不需要為每對Activity和Fragment之間定義介面而發愁。
Android 4.4 前後版本讀取相簿圖片和拍照完美解決方案-獲取檔案路徑
4.3或以下,選了圖片之後,根據Uri來做處理,很多帖子都有了,我就不詳細說了.主要是4.4,如果使用上面pick的原生方法來選圖,返回的uri還是正常的,但如果用ACTION_GET_CONTENT的方法,返回的uri跟4.3是完全不一樣的,4.3返回的是
Android漢字轉拼音的完美解決方案
前面的話:做一件事情前一定要先對比多種解決方案在開始寫程式碼,如果一開始就知道某種方法的不合理,就不會浪費那麼多時間在解決之前的錯誤上啦。這篇文章就是因為一開始沒有認識到這個問題,付出的代價。以此為戒! 一開始,我使用ASCII碼和拼音的對映對漢字和拼音間
Android 4.4前後版本讀取相簿圖片和拍照完美解決方案
4.3或以下,選了圖片之後,根據Uri來做處理,很多帖子都有了,我就不詳細說了.主要是4.4,如果使用上面pick的原生方法來選圖,返回的uri還是正常的,但如果用ACTION_GET_CONTENT的方法,返回的uri跟4.3是完全不一樣的,4.3返回的是帶檔案路徑的,而
Android訊息推送完美解決方案
1.推送方式基礎知識: 在移動網際網路時代以前的手機,如果有事情發生需要通知使用者,則會有一個視窗彈出,將告訴使用者正在發生什麼事情。可能是未接電話的提示,日曆的提醒,或是一封新的彩信。推送功能最早是被用於Email中,用來提示我們新的資訊。由於時代的發展和移動網際網
spring-boot 使用 main函數 無法啟動的問題完美 解決方案。
logs aid maven spring use ring ng- main函數 host 首先 是啟動之後 ,直接回exit code 0,網址 裏面輸入localhost:8080顯示站點未啟動。網上查 了多種 方式 ,日誌 也 打了,都沒發現問題,最後到這篇文
rem手機端頁面自適應完美解決方案(最新)
有效 load rem tex width meta sel setattr name <!DOCTYPE html> <html> <head> <meta charset="UTF-8">
DevExpress控件cxGrid實現多列模糊匹配輸入的完美解決方案
change chang pro 檢索 res ble tableview 封裝 完美解決 本方案不需要修改控件源碼,是完美解決cxgrid或TcxDBExtLookupComboBox支持多列模糊匹配快速輸入的最佳方案!! 小哥摸索多日,終於搞定cxgrid和TcxDBE
「部署日記」Android Studio亂碼解決方案
安裝 roi 技術分享 set fff setting 電腦 span conf 弄了一臺新電腦,第一件事肯定是弄好打造臺啦 於是VS、AS、CRD、NSIS、Adobe全家桶全安裝完畢, 問題來了,在打開Android Studio時,出現亂碼,比如 這樣的: 這樣的:
[轉載]java讀寫word文檔,完美解決方案
重點 app PE 列表 mage too 介紹 代碼 而且 做項目的過程中,經常需要把數據裏裏的數據讀出來,經過加工,以word格式輸出。 在網上找了很多解決方案都不太理想,偶爾發現了PageOffice,一個國產的Office插件,開發調用非常簡單!比網上介紹的poi,