發表文章

html css & bootstrap心得

html心得: block and inline elements Lists link and attributes tables forms css心得: selectors layout: box model: display:block display:inline display:inline-block visibility:hidden display:none box-sizing:border-box positioning: position:relative position:absolute position:fixed float: float:left selectors::after clear:both bootstrap心得: 引用代碼直接官網複製 Layout Flexbox: display: flex; class="d-flex flex-row" class="d-flex justify-content-center" class="d-flex align-items-center" Containers and grid system Media Queries: 有條件的發生 @media (min-width: 480px) { body { background-color: yellow; } } Containers Grid System Justification Navbar and Scrollspy Cards and Card Layout modal彈跳視窗

android AsyncTask的executeOnExecutor

圖片
AsyncTask的兩個用法 execute跟executeOnExecutor 第一個是按照使用的順序執行 第二個則是可以並行 imgDownload.execute(thumbnail); imgDownload.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, thumbnail);

android recylcerView應用drag swipe

建立ItemTouchHelper 並設定 itemTouchHelper.attachToRecyclerView(recyclerView);

android 上完hank課程的心得筆記

四大基本元件: Activity Content Provider(從其他app讀取資料) service broadcast 各種快捷鍵: ctrl+p 看function需要變數 ctrl+alt+f 區域變數變全域變數 ctrl+alt+m 將選取程式碼變成一個方法 alt+enter 看到底線紅,實作各種方法。 logd sout 快捷 ctrl+d 複製這一行 alt+shift+down or up 換行 xxx.nn  +tab 判斷xxx是不是null 一些layout的使用法: ConstraintLayout  約束值   guideLine RecyclerView RecyclerView.ViewHolder RecyclerView.Adapter Action Bar onCreateOptionsMenu onOptionsItemSelected Fragmnet Firebase連線 json分析 AsyncTask類的實作

android service作法

http://ozzysun.blogspot.com/2010/11/android-service_02.html 這一個單元是有關服務Service 這個Android裡面的元件Component 這個Android裡面有四大元件 第一個當然是管畫面的Activity Service則是沒有畫面的一些工作 可以使用Service來設計 那比如說來上傳和下載檔案 或是儲存成績取得網路連線這些工作 都可以使用背景不需要畫面的一些服務 服務類別它是一個繼承Service的類別 它他有三大類第一類是一般常見的服務寫法 那我們只需要在package上按右鍵 然後new一個Java類別 這個類別我取名叫HelloService簡單的測試 那它繼承Super class這邊就 可以輸入Service類別 Service類別選擇android.app.Service 好實作做完了之後呢它需要覆寫方法 那覆寫第一個是叫onBind onBind方法 這個方法是屬於綁定型Service需要的方法 那接著呢我們要談到服務的產生還有執行跟結束 請各位按Ctrl O 覆寫方法 點擊onCreate onCreate當服務被產生的時候自動會被執行的方法 那服務執行的時候它是執行onStartCommand 那另外一個結束的時候是onDestroy方法 所以請各位選擇這三個方法覆寫它 當它覆寫完了之後我們還是一樣加入Logcat Logd Tab 然後建立一些測試的一個指令 把這個TAG常數建立出來 再把這個Logcat指令複製到這些覆寫過的方法中 然後再改變它的訊息 變成onDestroy onStartCommand 那在這個onStartCommand的時候 其實它有一個回傳值它比較特殊 這個回傳值你可以選擇說 這個服務未來如果在執行的過程當中 如果在系統的背景被我們Android系統因為 資源缺乏而把這個服務殺掉的時候 那你要怎麼辦 所以我們直接打START大寫 有幾個常數可以選擇第一個是NOT STICKY 就是說當它被殺了時候就不要再啟動它了 另外一個是相反 如果它被殺了請馬上重啟這一個服務 可是重啟的時候 它他傳進來這個Intent會是null喔 那如果你要叫它再重新把In...

android actionbar的option menu

在Activity加入下面這兩個方法 並且在res裡面新增menu資源檔 就可以使用

android RecyclerView的做法

想做表單可以使用gridview或是listview 或是新的RecyclerView。 可以直接在MainActivity新增要使用的adapter class RecyclerView需要三個東西 自定義一個放資料的class Adapter和Adapter中的ViewHolder 1. adapter裡面再新增一個view holder, 要實作方法的時候可以在底部有紅線的地方, 使用alt+insert看需要哪些方法。 之後寫一個提供資料的class 2. 3.

android webview增加進度條

主頁面 progressbar的樣式設定 MainActivity的設定

android 設定透明動畫

首先在res/anin創建檔案 1. 在main activity裡面建立 2.

android 偵測scroll事件的寫法

myLastVisiblePos放在全域變數

android 側邊選單做法Navigation Drawer

側邊選單的關鍵字為DrawerLayout,在網路上搜尋了一些資料。 首先頁面必須使用這個容器裝 1. 之後在裡面新增一個id為nav_view的容器, 這邊的容器應該可以隨意, nav_view能不能夠修改還沒有測試, 這邊應該是參考android新增專案的範例改的。 2. 裡面include的xml 內容可以隨意 之後在mainActivity加入 完成!

android 觸及時的水波紋效果

android Adapter的用法說明

圖片
在使用ListView或是GridView時,會使用到Adapter來定義View的內容,最簡單的方式如下: 但我們通常不會只想要List或是Grid裡面只有一個TextView的,所以這邊必須要自定義一個Adapter來使用。 例如: 最基本的adapter必須具備這樣的一個架構,而我們可以從convertView = LayoutInflater.from(context).inflate(R.layout.grid, null); 去定義R.layout.grid去修改顯示的內容 最後的結果:

android TextView單行跑馬燈設定

在textview加入以下 如果更新view的內容會造成跑馬燈的textview重繪。導致跑馬燈停下, 這個時候可以在textview外套用一個linearlayout,就可以解決。

Android-手机Mp3音乐文件显示到ListView中

精華文章 讚 原文連結

Android 影像記憶體管理心得

Android App很容易發生記憶體過量的問題,這個時候如何釋放不用的記憶體成為一門學問,但這篇心得不會講到如何釋放記憶體。 App在讀取大量圖片的情況很容易造成記憶體過量的問題,實際測試在新專案裡面,在xml設定一個ImageView,設定一張原圖大約為300kb的png的圖,居然吃掉了約10mb的記憶體空間,由於Android在讀取的時候是用Bitmap來讀圖,檔案大小會根據原圖的解析度。 所以一個頁面若是有很多圖片,開開關關就很容易造成記憶體過量。在xml定義縮圖也是沒有意義的,只會縮放大小。 (ps:兩個ImageView使用一樣的圖,並不會造成記憶體兩倍。) 這邊提供一個小心得是,在定義xml的時候,都使用同一張圖來定義ImageView,當作是預覽用,讓他佔一個空間以調整大小與距離。 之後在程式執行的時候,首先將圖全部以bitmap的方式讀進來,在一個個view設定圖片,這樣就能夠對bitmap進行真正意義的縮放,還有記憶體的釋放也容易。

android app之間使用socket做溝通

最近在製作一個兩個app之間能夠互相溝通並且傳遞一些指令的專案,這種專案適合用socket而不是URLconnection,原因如下。 A socket can implement almost a duplex kind of functionality, whereas a url connection can connect to a given URI and read its content. 經過一些研究之後了解到,要建立一個 Socket 連線,我們必須寫兩支程式,分別代表 Client 端以及 Server 端。在網路上搜尋到一個多人聊天室的範例程式,如下: Server(Server可以在能夠執行java的環境下直接執行) 1 2 client(android studio) 1 2 3 這邊值得一提的是,開Socket Server的主機ip要如何獲得,port可以隨意指定,但是ip要如何獲得呢?這邊提供一個方式 1 new Thread( new Runnable() { @Override public void run () { ChatServer server = new ChatServer() ; server.setContext(MainActivity. this ) ; server.start() ; } }).start() ; 搭配Server.java在MainAvticity加上上面這段,可以印出IP。順帶一提的是,使用Android Studio的模擬器的話,模擬器server的IP為10.0.2.15。兩台模擬器之間要互相連線的話可以參照其他網路上設定虛擬IP的方法。 在別得class創建一個新的activity 最後提一下小心得,Socket的應用於app的小心得,由於創建clinet thread的activity跟發送資料與收到資料時的activity通常不會一樣,我們必須要所有的activity收到資料都要能夠透過那個資料,做一些處理UI的事情,例如創建新的activ...

自定義view 製造水波紋的效果

要自定義View可以創一個新的class去繼承View這個類, 之後針對需要定義一些自己要的功能, 這裡提供一個類似水波紋效果的code。

利用ObjectAnimator控制view的位置

應用 使用TouchListener來控制view的移動

ClearEditText自定義

圖片
製作一個可以清除訊息的文字編輯框 使用方法如下 建立一個新的類ClearEditText繼承AppCompatEditText,我們可以在onTouchEvent裡面設定清除文字的事件 並且在onTextChange裡面設定當有文字的時候產生右邊清除按鈕的事件。 結果如下 line.xml 順帶一提,若是想要自己定義view的話,一開始會有這樣的結構: 參考資料