Time of Update: 2018-12-08
前幾天因為項目的需要,要在一個ListView中放入另一個ListView,也即在一個ListView的每個ListItem中放入另外一個ListView。但剛開始的時候,會發現放入的小ListView會顯示不完全,它的高度始終有問題。上網查了下,發現別人也有遇到這樣的問題,而大多數人都不推薦這樣的設計,因為預設情況下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是無法計算的。又搜尋了一下,發現有StackOverflow上的牛人已經解決了這個問題,經過實
Time of Update: 2018-12-08
當資料庫中存有大量資料的時候,用Cursor查詢時要注意,有可能引發效能問題。資料庫查詢出來的Cursor都會由一個CursorWindow來進行資料管理,包括記憶體空間的申請和資料的填充。CursorWindow對Cursor中的內容大小有限制,限制為1024*1024也就是1M,換句話說Cursor中資料的大小不能超過1M,如果超過1M會引發如下的錯誤:複製代碼 代碼如下:08-23 05:48:31.838: DEBUG/Cursor(1805): skip_rows row 14908-
Time of Update: 2018-12-08
對智能手機有所瞭解的朋友都知道其中一個應用廣泛的手機作業系統Android
Time of Update: 2018-12-08
在《Android
Time of Update: 2018-12-08
以前線上性代數中學習了矩陣,對矩陣的基本運算有一些瞭解,前段時間在使用GDI+的時候再次學習如何使用矩陣來變化映像,看了之後在這裡總結說明。首先大家看看下面這個3 x 3的矩陣,這個矩陣被分割成4部分。為什麼分割成4部分,在後面詳細說明。首先給大家舉個簡單的例子:現設點P0(x0, y0)進行平移後,移到P(x,y),其中x方向的平移量為△x,y方向的平移量為△y,那麼,點P(x,y)的座標為:x = x0 + △x y = y0 + △y採用矩陣表達上述如下:
Time of Update: 2018-12-08
在Android開發中,定時器一般有以下3種實現方法:一、採用Handler與線程的sleep(long)方法二、採用Handler的postDelayed(Runnable, long)方法三、採用Handler與timer及TimerTask結合的方法下面逐一介紹:一、採用Handle與線程的sleep(long)方法Handler主要用來處理接受到的訊息。這隻是最主要的方法,當然Handler裡還有其他的方法供實現,有興趣的可以去查API,這裡不過多解釋。1.
Time of Update: 2018-12-08
今日事今日畢,這是生產力的最重原則。沒有什麼能比從待辦事項清單裡劃掉一些條目更讓人覺得舒服的事了。做為一個高效的人,您需要一個優秀的待辦事項管理工具,一個優秀的待辦事項清單可以協助你更加高效的完成一天的任務。今日事今日畢是款優秀的待辦事項管理工具,它可以方便,簡潔快速的幫您安排一天內要做的任務。無論是待辦事項,購物清單,甚至是臨時記事都可以用它來完成。沒有繁雜的日期和時限設定,沒有花哨的按扭頁面,就是一個簡單的列表,點擊即可輸入,按斷行符號就輸入完成;完成了就打鉤;如果這一任務不做了,可以把它刪
Time of Update: 2018-12-08
1.
Time of Update: 2018-12-08
複製代碼 代碼如下:package com.weizhu.lan.view;import com.weizhu.lan.util.MyprogressDialog;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import
Time of Update: 2018-12-08
很多時候,我們需要展示在用戶端展示圖片,而且是動態顯示,即不停地自行切換圖片。下面我們來看一下具體的實現方法。首先,我們需要在XML... 很多時候,我們需要展示在用戶端展示圖片,而且是動態顯示,即不停地自行切換圖片。下面我們來看一下具體的實現方法。 首先,我們需要在XML檔案中配置一下將要播放圖片的控制項(main.xml):複製代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?> <LinearLayout
Time of Update: 2018-12-08
SQLite分析 SQLite是輕量級的、嵌入式的、關係型資料庫,現在已經在iPhone、Android等手機系統中應用,SQLite可移植性好,很輕易應用,很小,高效而且牢靠。SQLite嵌入到應用它的應用程式中,它們共用雷同的進程空間,而不是單獨的一個進程。從外部看,它並不像一個RDBMS,但在進程內部,它倒是完整的,自包括的資料庫引擎。
Time of Update: 2018-12-08
非同步載入圖片的主要流程是進行判斷緩衝中是否存在圖片,如果存在則直接返回,如果不存在則進行下載並進行緩衝。以下是建立一個非同步下載類:複製代碼 代碼如下:/** * User: Tom * Date: 13-5-13 * Time: 下午8:07 */public class AsnycImageLoader { //定義一個HashMap進行存放緩衝的Image key為String Value為一個弱引用的一個資源檔 // 圖片 為了方便JAVA的回收 private
Time of Update: 2018-12-08
閑來無事,琢磨琢磨Android中的手勢互動,發現網上在手勢方面的文章並不是很多,而且很多的參考價值並不大。於是出此博文,與大家共勉。鑒於我寫此博文時對手勢互動的研究也不是特深,如果有不正確的地方,還請各位博友批評指正。首先,在Android系統中,每一次手勢互動都會依照以下順序執行。1. 接觸接觸屏一刹那,觸發一個MotionEvent事件。2. 該事件被OnTouchListener監聽,在其onTouch()方法裡獲得該MotionEvent對象。3. 通過GestureDetector(
Time of Update: 2018-12-08
1、xml代碼:複製代碼 代碼如下:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent"
Time of Update: 2018-12-08
要不怎麼說Android特別開放呢,在Android開發中,只要發送一個廣播,就可以實現這種需求了。廢話不多說,以下是封裝好的一段代碼。複製代碼 代碼如下:public class ShortcutUtil { public static void createShortCut(Activity act, int iconResId, int appnameResId) { //
Time of Update: 2018-12-08
首先要說的是,使用者可能把這種做法視為流氓軟體。大部分時候,程式員也不想把軟體做成流氓軟體,沒辦法,領導說了算。我們在使用某些Android應用的時候,可能會發現安裝了某應用以後,會有一些服務也會隨之運行。而且,這些服務每次都會隨著手機開機而啟動。有的服務做的更絕,當使用者在啟動並執行服務中手動停止該服務以後,過了一段時間,服務又自動運行了。雖然,從使用者的角度來說,這種方式比較流氓。但是,從程式員的角度來說,這是如何做到的呢?經過研究,我發現有一種方式是可以實現的。下面就和大家分享。先簡單介紹
Time of Update: 2018-12-08
通常我們寫程式,都是在專案計劃的壓力下完成的,此時完成的代碼可以完成具體商務邏輯,但是效能不一定是最佳化的。一般來說,優秀的程式員在寫完代碼之後都會不斷的對代碼進行重構。重構的好處有很多,其中一點,就是對代碼進行最佳化,提高軟體的效能。下面我們就從幾個方面來瞭解Android開發過程中的代碼最佳化。1)靜態變數引起記憶體泄露在代碼最佳化的過程中,我們需要對代碼中的靜態變數特別留意。靜態變數是類相關的變數,它的生命週期是從這個類被聲明,到這個類徹底被記憶體回收行程回收才會被銷毀。所以,一般情況下,
Time of Update: 2018-12-08
如果我們在每個xml檔案中都把相同的布局都重寫一遍,一個是代碼冗餘,可讀性很差;另一個是修改起來比較麻煩,對後期的修改和維護非常不利。所以,一般情況下,我們需要把相同布局的代碼單獨寫成一個模組,然後在用到的時候,可以通過<include /> 標籤來重用layout的代碼。常見的,有的應用在最上方會有一個標題列。類似所示。圖 標題列的樣本 如果項目中大部分Activity的布局都包含這樣的標題列,就可以把標題列的布局單獨寫成一個xml檔案。複製代碼
Time of Update: 2018-12-08
這裡說是架構,說的大了點,其實沒有那麼複雜,只是一個容易擴充的基類而已。不過至少算是架構類的代碼。複製代碼 代碼如下:package arui; import android.app.Activity; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.view.Gravity; import
Time of Update: 2018-12-08
在xml布局檔案中,我們既可以設定px,也可以設定dp(或者dip)。一般情況下,我們都會選擇使用dp,這樣可以保證不同螢幕解析度的機器上布局一致。但是在代碼中,如何處理呢?很多控制項的方法中都只提供了設定px的方法,例如setPadding,並沒有提供設定dp的方法。這個時候,如果需要設定dp的話,就要將dp轉換成px了。以下是一個應用類,方便進行px和dp之間的轉換。複製代碼 代碼如下:import android.content.Context; public class