原创 c++ 中綴表達式轉後綴表達式並計算值

什麼是中綴表達式, 前綴表達式, 後綴表達式? 在數據結構中, 二叉樹的遍歷有三種(這裏不考慮分層遍歷等特殊需求): 前序遍歷, 中序遍歷和後序遍歷. 如果將表達式看做一顆二叉樹, 那麼中綴表達式, 前綴表達式和後綴表達式就是這三種遍

原创 Android 使用ViewGroup實現ViewPager的效果

ViewPager控件可以讓我們做出很多漂亮的界面,例如導航, 頁面菜單等. 那麼我們自己能否去實現ViewPager的效果呢? 本文將介紹如何使用ViewGroup + scrollTo + scroller實現ViewPager控件,

原创 c++ 常見排序算法彙總

1.快速排序算法 最壞時間複雜度爲O(n*n), 這與基數的選擇有關, 期望的運行時間爲O(nlgn),且O(nlgn)記號中隱含的常數因子很小。另外,它還能夠進行就地排序. 快速排序邏輯: 1、先從數組中取出一個數作爲基數,基數的選

原创 HorizontalScrollView 滑動流程與在TV端使用horizontalscrollview的問題

在android TV端中實現水平滑動效果可以使用HorizontalScrollView來實現, 現在來介紹一下在TV端使用HorizontalScrollView時遇到的問題. HorizontalScrollView 滑動流程 例如

原创 android 如何修改系統語言

最近有需求需要去編程實現根據選擇去修改系統語言, 根據查資料看setting源碼有兩種方式, 在這裏記錄一下. 修改系統語言或者控制系統開關機等操作即使聲明瞭對應權限還是會報錯, 這是因爲這些操作需要系統權限,這裏也會介紹如何使用andr

原创 linux poll與epoll模型簡介

Linux I/O複用 高性能的網絡服務器需要同時併發處理大量的客戶端,而採用以前的那種對每個連接使用一個分開的線程或進程方法效率不高,因爲處理大量客戶端的時候,資源的使用及進程上下文的切換將會影響服務器的性能。一個可替代的

原创 針對Android TV端使用的自定義RecyclerView

在Android TV中開發, 需要處理焦點的移動, 爲了達到醒目的作用一般都會添加焦點移動動畫和焦點選中放大效果, 爲了方便在TV端使用RecyclerView, 故自定義TvRecyclerView來實現焦點選中與移動的效果. 效果如

原创 Android gradle SourceSets介紹與使用

java插件引入了一個概念叫做SourceSets,通過修改SourceSets中的屬性,可以指定哪些源文件(或文件夾下的源文件)要被編譯,哪些源文件要被排除。Gradle就是通過它實現Java項目的佈局定義。 SourceSets目錄

原创 android dialog背景模糊化效果

最近做項目有這樣的需求: 在activity中啓動一個dialog時, 啓動的dialog的背景設爲啓動acitivity的模糊化圖片. 實現思路: 1. 截屏, 獲取當前activity的界面 2. 將獲取的照片進行模糊化 3.

原创 android 使用反射獲取MediaPlayer的Invoke方法

最近有需求需要使用MediaPlayer的invoke接口去實現某些功能, 但是invoke接口是隱藏的, 沒有在sdk中開放出來. 所以使用反射的方法來獲取invoke接口, 但在實現的過程中出現一些問題, 在這裏記錄一下. 1.使用

原创 View只能獲得ACTION_DOWN消息, ACTION_MOVE消息接收不到

在實現一個可以滑動的view時, 發現view並不能根據手指的位置滑動, 通過log查看, view只接收到ACTION_DOWN的消息, 沒有收到ACTION_MOVE消息. 原因: android的消息傳遞機制是: 有外到內, 處理機