Time of Update: 2017-01-19
上文說道了Android如何測量,但是一個漂亮的控制項我只知道您長到哪兒,這當然不行。只需要簡單重寫OnDraw方法,並在Canvas(畫布)對象上調用那根五顏六色的畫筆就能夠畫出這控制項"性感"的外表。那麼View又是如何進行繪製了? 要瞭解View如何繪製,就需要瞭解canvas(畫布)是什嗎?paint(畫筆)能夠做什麼。 Ⅰ、canvas就是表示一塊畫布,你可以在上面畫你所朝思暮想的東西。當我們重寫onDraw方法的時候,就能夠拿到一個Canvas對象,這個就是你的舞台,畫你所思所想
Time of Update: 2017-01-19
通常情況下,Android實現自訂控制項無非三種方式。 Ⅰ、繼承現有控制項,對其控制項的功能進行拓展。 Ⅱ、將現有控制項進行組合,實現功能更加強大控制項。 Ⅲ、重寫View實現全新的控制項 本文來討論最難的一種自訂控制項形式,重寫View來實現全新的控制項。 首先,我們要明白在什麼樣的情況下,需要重寫View來實現一種全新的控制項,一般當我們遇到了原生控制項無法滿足我們現有的需求的時候,我們此時就可以考慮建立一個全新的View來實現我們所需要的功能。建立一個全新View實現自訂控制項,
Time of Update: 2017-01-19
通常情況下,Android實現自訂控制項無非三種方式。 Ⅰ、繼承現有控制項,對其控制項的功能進行拓展。 Ⅱ、將現有控制項進行組合,實現功能更加強大控制項。 Ⅲ、重寫View實現全新的控制項 上文說過了如何繼承現有控制項來自訂控制項:《Android繼承現有控制項拓展實現自訂控制項textView》,這節我們來討論第二個議題。怎麼將控制群組合來實現一個功能強大的自訂控制項。 先看看建立群組控制項的好處吧,建立群組控制項能夠很好的建立具有組合功能的控制項集合。那我們一般又是怎麼做的了,一般
Time of Update: 2017-01-19
Android中實現view的更新有兩組方法,一組是invalidate,另一組是postInvalidate,其中前者是在UI線程自身中使用,而後者在非UI線程中使用。 Android提供了Invalidate方法實現介面重新整理,但是Invalidate不能直接線上程中調用,因為他是違背了單執行緒模式:Android UI操作並不是安全執行緒的,並且這些操作必須在UI線程中調用。
Time of Update: 2017-01-19
發送圖片:首先找到具體傳遞的圖片:<span style="font-family: comic sans ms,sans-serif; font-size: 16px;">private Bitmap getimage(String srcPath) {BitmapFactory.Options newOpts = new BitmapFactory.Options();// 開始讀入圖片,此時把options.inJustDecodeBounds
Time of Update: 2017-01-19
通過本次小Demo我學到了:1、ListView的小小的一個分頁功能2、加深了對自訂控制項的理解3、對ListView的最佳化4、對BaseAdapter的使用5、自訂Adapter6、介面的回調要實現下面的效果--當拖動ListView到底部的時候,顯示一個ProgressBar和一個"正在載入..."的TextView。並且過兩秒鐘後,在下面載入出新的資料。項目的目錄結構和程式要實現的效果如下:
Time of Update: 2017-01-19
先給大家這是下效果圖:Google提供的v4包,ViewPager在布局檔案中,先添加<android.support.v4.view.ViewPager/>控制項,這個只是輪播的地區在布局檔案中,布置標題描述部分線性布局,豎向排列,背景色黑色半透明,這個布局和上面的ViewPager底部對齊layout_alignBottom=”@id/xxx”<TextView/>置中顯示,小點部分,先放過空的LinearLayout,id是ll_points在代碼中對其進行填充擷取
Time of Update: 2017-01-19
相關閱讀:Android開發系列二之視窗Activity的生命週期Android開發系列一用按鈕實現顯示時間設定視窗標題事件和在Activity之間跳轉。建立一個項目,建立兩個Activity:MainActivity,TitleActivity ,然後再AnroidManifest.xml 中註冊TitleActivityAndroidManifest.xml內容如下<?xml version="1.0"
Time of Update: 2017-01-19
在上篇文章給大家介紹了android開發系列一之用按鈕實現顯示時間,感興趣的朋友可以點擊閱讀詳情。在Activity從建立到銷毀的過程中需要在不同的階段調用7個生命週期的方法這7個生命週期方法定義如下:protected void onCreate(Bundle savedInstanceState)protected void onStart()protected void onResume()protected void onPause()protected void
Time of Update: 2017-01-19
我們先用AndroidStudio建立一個項目,選擇空白模板,然後像其中拖入兩個Button,將他們的id分別命名為btDate(顯示日期),btTime(顯示時間),他的模板XML代碼很簡單<?xml version="." encoding="utf-"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.
Time of Update: 2017-01-19
WebView是Android中一個非常實用的組件,它和Safai、Chrome一樣都是基於Webkit網頁渲染引擎,可以通過載入HTML資料的方式便捷地展現軟體的介面。在布局檔案中添加<EditText/>和<Button/>控制項,在布局檔案中添加<WebView/>控制項在Activity中擷取WebView對象調用WebView對象的loadUrl()方法,參數:String路徑添加訪問網路的許可權android.permission.INTERNET
Time of Update: 2017-01-19
Android資源檔大致可以分為兩種:第一種是res目錄下存放的可編譯的資源檔:這種資源檔系統會在R.java裡面自動產生該資源檔的ID,所以訪問這種資源檔比較簡單,通過R.XXX.ID即可;第二種是assets目錄下存放的原生資源檔:因為系統在編譯的時候不會編譯assets下的資源檔,所以我們不能通過R.XXX.ID的方式訪問它們。那我麼能不能通過該資源的絕對路徑去訪問它們呢?因為apk安裝之後會放在/data/app/**.apk目錄下,以apk形式存在,asset/res和被綁定在apk裡
Time of Update: 2017-01-19
本文為大家分享了兩款選取器,一款可以針對時間進行選擇、一款可以針對日期進行選擇,供大家參考,具體內容如下一、時間選取器1.1.布局<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
Time of Update: 2017-01-19
Android 中下拉式功能表,即如html中的<select>,關鍵在於調用setDropDownViewResource方法,以XML的方式定義下拉式功能表要顯示的模樣1.1.activity_main.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:
Time of Update: 2017-01-19
Android會為每個apk進程分配一個單獨的空間(比如只能訪問/data/data/自己包名下面的檔案),一般情況下apk之間是禁止相互訪問資料的。通過Shared User id,擁有同一個User id的多個APK可以配置成運行在同一個進程中.所以預設就是可以互相訪問任意資料. 也可以配置成運行成不同的進程,
Time of Update: 2017-01-19
本文執行個體為大家分享了Android實現單項、多項選擇操作的相關代碼,供大家參考,具體內容如下1、單項選擇1.1.布局<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
Time of Update: 2017-01-19
自訂dialog基礎版很多時候,我們在使用android sdk提供的alerdialog的時候,會因為你的系統的不同而產生不同的效果,就好比如你刷的是MIUI的系統,彈出框都會在頂部顯示!這裡簡單的介紹自訂彈出框的應用。首先建立布局檔案dialog:代碼:<?xml version="1.0" encoding="utf-8"?><LinearLayout
Time of Update: 2017-01-19
零、Gallery的使用回顧我們有時候在iPhone手機上或者Windows上面看到動態圖片,可以通過滑鼠或者手指觸摸來移動它,產生動態圖片滾動效果,還可以根據你的點擊或者觸摸觸發其他事件響應。同樣的,在Android中也提供這這種實現,這就是通過Gallery在UI上實現縮圖瀏覽器。我們來看看Gallery是如何來實現的,先把控制項從布局檔案中聲明,只需知道ID為gallery。Gallery gallery = (Gallery) findViewById(R.id.gallery);
Time of Update: 2017-01-19
你以為頭像更換很容易?或許對於使用者來講,在微信上更換一個頭像只是點擊頭像,選擇拍照或相簿,裁剪返回而已。但是對於程式員來說,要實現其實也挺吃力的(小火柴花了一個下午整理~_~)。正如使用者使用那樣,代碼的實現也是按照操作的順序而逐步展開。如下圖:接下來主要來講解一下代碼:1. 彈框選擇相簿或拍照比較簡單的方式就是直接使用AlertDialog彈出選項供使用者進行選擇public static void showImagePickDialog(final Activity activity){
Time of Update: 2017-01-19
意義:由於每個應用進程都有自己的獨立進程空間,在android平台上,一個進程通常不能訪問另一個進程的記憶體空間,而我們經常需要誇進程傳遞對象,就需要把對象分解成操作對象可以理解的基本單元,並且有序的通過進程邊界。定義:AIDL(Android Interface Definition Language)是一種IDL語言,用於產生可以在Android裝置上兩個進程之間進行處理序間通訊(interprocess communication, IPC)的代碼。如果在一個進程中(例如Activity)