一類的基本概念這是一個註冊監聽視圖樹的觀察者(observer),在視圖樹種全域事件改變時得到通知。這個全域事件不僅還包括整個樹的布局,從繪畫過程開始,觸摸模式的改變等。最常見的用途時通過監聽獲知什麼時候,視圖的寬高值確定了,可以擷取了,以便更改UI。二類的主要介面:監聽器interface ViewTreeObserver.OnGlobalFocusChangeListener 當在一個視圖樹中的焦點狀態發生改變時,所要調用的回呼函數的介面類interface
- (NSString *)hmacsha1:(NSString *)text key:(NSString *)secret { NSData *secretData = [secret dataUsingEncoding:NSUTF8StringEncoding]; NSData *clearTextData = [text dataUsingEncoding:NSUTF8StringEncoding]; unsigned char
上一篇《Android自訂群組件系列【5】——進階實踐(1)》中對任老師的《可下拉的PinnedHeaderExpandableListView的實現》前一部分進行了實現,這一篇我們來看看ExpandableListView的使用並實現剩下的部分。原文出處:http://blog.csdn.net/singwhatiwanna/article/details/25546871一、ExpandableListView的用法ExpandableListView是ListView的子類,它在普通Lis
公元2014年4月15日,春風拂面,陽光明媚,青草綠蔭,大地充滿了生機和希望。這天全球首家開發人員服務商店-DevStore,承載著希望,承載著未來,橫空出世,應運而生。 4月15日當天,為了這個慶生的日子,DevStore舉行了三個大活動:微博轉寄,建議服務,懸賞評測。吸引眾多開發人員和使用者一起來慶祝這個彙集了眾多開發人員服務平台的誕生。http://www.devstore.cn/activity/uplineActivity 4月25日,DevStore自上線以來,受
博主在剛剛在學習過程中發現了一個關於android往sdcard讀寫的問題,配置了該配置的提示無讀寫權限。在AndroidManifest.xml檔案中配置清單如下 package="com.example.custom" android:versionCode="1" android:versionName="1.0" > android:minSdkVersion="8" android:targetSdkVersion="1
最近Google的在Google I/O大會上推出了一款新的開發工具android studio。這是一款基於intellij IDE的開發工具,使用Gradle構建,相信做過java的童鞋們都知道這個工具。今天俺安裝了下嘗嘗鮮,開啟一看其實和之前的intellij
android源碼下載:官方下載 或參考android源碼下載方式Android編譯版本: PLATFORM_VERSION=4.0.1(最新Android 4.0.1)OS 作業系統平台: Linux yanggang 2.6.35-30-generic #61-Ubuntu SMP Tue Oct 11 15:29:15 UTC 2011 i686 GNU/Linux(Ubuntu10.10 32bit)首先,我們先安裝一些常用的工具curl:
在運行時添加片段點擊擷取源碼將UI分割為多個可配置的部分是片段的優勢之一,但其真正強大之處在於可在運行時動態地把它們添加到活動中。1、使用上一篇建立的Fragments項目,在main.xml檔案中注釋掉兩個元素;2、在FragmentActivity.java中添加下面的代碼:FragmentManager fragmentManager = getSupportFragmentManager();//向活動添加片段FragmentTransaction
Android-自訂PopupWindow2014年5月12日PopupWindow在應用中應該是隨處可見的,很常用到,比如在舊版本的當中就用到下拉的PopupWindow,那是自訂的。新版5.2的ActionBar,有人已經模仿了它,但具體是使用了ActionBar還是其他的筆者倒是不太清楚,本篇部落客要介紹如何自訂一個PopupWindow來供自己在開發應用時使用。因為筆者最近在開發一款應用時用到這個知識點,所以自己實現了類似新版的效果。源碼下載:http://download.csdn.n
本文章基於apkplug v1.6.7 版本編寫,最新方式以官網最新訊息為準 一 apkplug架構所需要的庫檔案(宿主) 可從http://git.oschina.net/plug/apkplugSDK 擷取最新庫檔案 同時可下載最新的apkplugdemo源碼 http://git.oschina.net/plug/apkplugDemos libs-- --libndkfoo.so armeabi armeabi-v7a mips x86 -
今天繼續AndroidUI組件的講解(寫部落格只是為了鞏固與繼續學習知識----工欲善其事,必先利其器!)下面是主Activity的源碼,裡面附含知識點的講解,在前面的部落格裡已經說明,簡單的知識點我會以代碼注釋的形式講解,好了,不廢話了:package com.gc.imageswitcherdemo;/* * 映像切換器(ImageSwitcher)的功能與用法 * * 1、ImageSwitcher繼承了ViewSwitcher,因此它具有與ViewSwitcher相同的特徵 *
在非全螢幕模式下,將activity的windowSoftInputMode的屬性設定為:adjustResize。同時在View的onSizeChanged(int w, int h, int oldw, int
項目需求一改再改,UI一調再調,結果就是項目中一堆已經用不到但卻沒有清理的垃圾資源,不說工程大小問題,對新進入項目的人或看其他模組的代碼的人來說,這些沒清理的資源可能也可能會帶來困擾,所以最好還是清理掉這些垃圾,對於一個稍微大一點的工程來說,手工清理明顯是不現實的,這就需要一個方法做這些事情。清理資源檔要清理沒用的資源,首要的工作當然是找到他們,我們知道Anroid
剛才在CH5的群裡問了問 有沒有大俠寫過 下拉表單控制項啊! 沒人鳥窩 ,DZ老師表示很傷心啊 ,於是乎 自己寫一個把 共用給大家。上一個 只實現了一個最最基本的控制項 很簡單 別吐槽啊,以後有空我會完善一下的,如果有朋友自願幫忙完善一下就更好了。有任何問題請加DZ老師的QQ 460418221引擎版本 : 2.2.2原理:有空再寫吧 源碼:/** * Created with
HandlerThread是一種特殊的Thread,也就是有Looper的thread,既然有looper的話,那我們就可以用此looper來建立一個Handler,從而實現和它的互動,比如你可以通過與它關聯的Handler對象在UI線程中發訊息給它處理。HandlerThread一般可以用來執行某些background的操作,比如讀寫檔案(在此HandlerThread而非UI線程中)。既然還是一個Thread,那麼和一般的Thread一樣,也要通過調用其start()方法來啟動它。它只是
我們做Listview的分批載入時,需要為Listview調用setOnScrollListener(具體代碼可見我上一篇部落格)可是,我們會發現,當運行程式時,listview明明沒有滾動,那為什麼系統會調用onScroll方法呢?(補充:此時onScrollStateChanged並不會調用)我們先看setOnScrollListener源碼:public void setOnScrollListener(OnScrollListener l) {
使用TabHost 可以在一個螢幕間進行不同版面的切換,而系統內建的tabhost介面較為樸素,我們應該如何進行自訂修改最佳化呢MainActivity的原始碼package com.dream.ledong;import android.app.TabActivity;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import
android對於上傳檔案,還是很簡單的,和java裡面的上傳都是一樣的,基本上都是熟悉操作輸出資料流和輸入資料流!還有一個特別重要的就是需要一些content-type這些參數的配置! 如果這些都弄好了,上傳就很簡單了! 下面是我寫的一個上傳的工具類:package com.spring.sky.image.upload.network;import java.io.DataOutputStream;import java.io.File;import
圖片有各種形狀和大小。在許多情況下這些圖片是遠遠大於我們的使用者介面(UI)且佔據著極大的記憶體空間,如果我們不對位元影像進行壓縮處理,我們的程式會發生記憶體泄露的錯誤。MainActivity的代碼package com.example.g08_bitmap;import android.os.Bundle;import android.app.Activity;import android.content.res.Resources;import
隱藏式瀏覽選單(navigationdrawer)是一個從螢幕左邊滑入的面板,用於顯示應用的主要導航項目。使用者可以通過在螢幕左邊緣滑入或者觸摸操作欄的應用表徵圖開啟隱藏式瀏覽選單。隱藏式瀏覽選單覆蓋在內容之上,但不覆蓋操作欄。當隱藏式瀏覽選單完全開啟後,操作欄的標題需要更換為應用的名稱,而不是顯示當前視圖的名稱,並且關閉所有和當前視圖相關的操作按鈕。操作欄的“更多操作”功能表按鈕不需要關閉,以保證使用者可以隨時訪問“設定”和“協助”。下面我們就來實現隱藏式瀏覽選單的功能。