原创 JavaScript 的一些編碼規範

1、不要對參數重新賦值 // bad function f1(a) { a = 1; // ... } function f2(a) { if (!a) { a = 1; } // ... } // good

原创 Android 限定字數文本輸入框的實現

<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layou

原创 Android 常用代碼整理:配置文件工具類(SPUtil)

說明:大部分內容都是參考別的文章,這裏做整理是爲了以後的編程有實用的模板,可以即需即用。 import android.content.Context; import android.content.SharedPreferenc

原创 Android 九宮格圖片展示的實現

添加圖片效果圖: 添加滿 9 張圖片效果圖: 添加文件相關文章:《圖片操作框架 TakePhoto 的引入》 長按刪除圖片效果圖: 刪除彈窗相關文章:《常用代碼整理:Android 常用彈窗整理》 採用 Recycl

原创 Android 開發中一些有趣的用法

1、RecyclerView.ViewHolder#setIsRecyclable 當 holder 有特殊的 view,且較爲複雜,可以通過 addView 的方式加進去,這樣就不必每個 holder 都有,但是,這時就不能複用

原创 Android 自帶的常用註解

1、在註釋中實現鏈接跳轉 /** * ... ... * @see #invalidate() * @see #postInvalidateDelayed(long) */

原创 Cocos 特有功能代碼

1、存儲和讀取用戶數據:cc.sys.localStorage cc.sys.localStorage 接口是按照 Web Storage API 來實現的,在 Web 平臺運行時會直接調用 Web Storage API,在原生

原创 Cocos 開發中遇到的坑

1、對象爲空帶來的問題 對象使用前要判斷空,網頁遇到空對象的執行,可能可以忽略錯誤繼續執行下去,但編譯成 Android 後,空必奔,所以前期開發要養成判空的好習慣,不夠後面改起來就呵呵了。 2、代碼執行快於渲染帶來的問題 在 o

原创 Lottie for Android:Json 動畫框架 Lottie 的使用及加載 zip 壓縮文件的方法

Json 動畫加載框架 Lottie,在網上已經有很多的相關文章了,但是版本都比較老,單獨加載 json 文件的還可以,涉及到加載 zip 壓縮文件的幾乎沒有,所以下面就稍稍列出常用的 json 動畫加載方式,再稍稍重點說一下加載

原创 JavaScript 的一些內置函數

1、數值方法: 1、toFixed():可把 Number 四捨五入爲指定小數位數的數字 let qqq = 1.234567; qqq.toFixed(3); // "1.235" 2、toString():返回該數值的字符串

原创 JavaScript

0、一些概念 (1)JavaScript 中的所有事物都是對象:字符串、數值、數組、函數;此外,JavaScript 允許自定義對象。對象只是一種特殊的數據,對象擁有屬性和方法;即對象只是帶有屬性和方法的特殊數據類型。 布爾型

原创 常用代碼整理:Android 自定義推送(Notification)

說明:大部分內容都是參考別的文章,這裏做整理是爲了以後的編程有實用的模板,可以即需即用。 默認的通知欄樣式: private void sendDefaultNotification() { Notific

原创 TextView 局部文本樣式設置之三:採用建造者模式抽取通用的 ReplacementSpan

package com.zzq.mydemo; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bi

原创 TextView 局部文本樣式設置之四:SpannableStringBuilder

SpannableStringBuilder 與 SpannableString 的區別就和 String 與 StringBuilder 的區別類似。SpannableStringBuilder 可以使用 append() 方法

原创 從 Android 源碼中學一些騷操作

1、在註釋中實現鏈接跳轉 /** * ... ... * @see #invalidate() * @see #postInvalidateDelayed(long) */