Time of Update: 2017-01-19
前幾天Boss就反應說,機器每次啟動程式都會閃一下黑屏,這個客戶不接受。沒辦法,只能想想怎麼解決,最後找到了下面的方法。閃黑屏的原因主要是我們啟動Activity的時候,需要跑完onCreate和onResume才會顯示介面。也就是說需要處理一些資料後,才會顯示。按照這種思路,是不是我把初始化的工作盡量減少就可以避免黑屏?事實是,就算你onCreate啥都不做,仍然會閃一下黑屏,因為初始化解析介面時需要一定時間。下面是解決辦法:1、自訂Theme複製代碼
Time of Update: 2017-01-19
一、常用的單位:相對單位主要有:px、sp、dp絕對單位主要有:pt、in、mm二、單位應用總結:一般用相對單位,而不是絕對單位1、字型的大小一般使用SP,用此單位的字型能夠根據使用者佈建字型的大小而自動縮放2、空間等相對距離一般使用dp(dip),隨著密度變化,對應的像素數量也變化,但並沒有直接的相對比例的變化。3、px與實際像素有關,及與密度有關!dp和sp和實際像素沒有關係,對於一定解析度但不同密度的螢幕,px單位的應用可能會導致長度的相對比例的變化。三、密度與解析度:密度值表示每英寸有多
Time of Update: 2017-01-19
1、產生原因其實顯示黑屏或者白屏實屬正常,這是因為還沒載入到布局檔案,就已經顯示了window視窗背景,黑屏白屏就是window視窗背景。樣本:2、解決辦法通過設定設定Style(1)設定背景圖Theme通過設定一張背景圖。 當程式啟動時,首先顯示這張背景圖,避免出現黑屏<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item
Time of Update: 2017-01-19
熟悉Android的朋友們都知道,不管是微部落格戶端還是新聞用戶端,都離不開列表組件,可以說列表組件是Android資料展現方面最重要的組件,我們 今天就要講一講列表組件ListView載入資料的相關內容。通常來說,一個應用在展現大量資料時,不會將全部的可用資料都呈現給使用者,因為這不管對於服 務端還是用戶端來說都是不小的壓力,因此,很多應用都是採用分批次載入的形式來擷取使用者所需的資料。比如:微部落格戶端可能會在使用者滑動至列表底端時自動加 載下一頁資料,也可能在底部放置一個“載入更多”按鈕,
Time of Update: 2017-01-19
概述 Android.mk檔案用來向編譯系統描述如何編譯你的原始碼。更確切地說,該檔案其實就是一個小型的Makefile。由於該檔案會被NDK的編譯工具解析多次,因此應該盡量減少源碼中聲明變數,因為這些變數可能會被多次定義從而影響到後面的解析。這個檔案的文法允許把原始碼組織成模組,每個模組屬於下列類型之一: APK程式:一般的Android程式,編譯打包產生apk檔案。
Time of Update: 2017-01-19
ChangeMode項目地址:ChangeModeImplementation of night mode for Android.用最簡單的方式實現夜間模式,支援ListView、RecyclerView。PreviewUsage xmlandroid:background="?attr/zzbackground"app:backgroundAttr="zzbackground"//如果當前頁面要立即重新整理,這裡傳入屬性名稱 比如 R.attr.zzbackground 傳
Time of Update: 2017-01-19
android在設計View類時,為了能儲存一些輔助資訊,設計一個一個setTag/getTag的方法。這讓我想起在Winform設計中每個Control同樣存在一個Tag。今天要說的是我最近學習android遇見的setTag的坑。一般情況下我們只需要使用唯一參數的setTag方法。但有時我們需要儲存多個資料,所以這個時候我們就需要使用帶key的重載。文檔是描述:“ The specified key should be an id declared in the resources of
Time of Update: 2017-01-19
今天的幾個目標: 1. 自訂ActionProvider 2. Toolbar ActionBar自訂Menu 3. Toolbar ActionBar 右側Menu添加角標(Toolbar ActionBar Menu添加小紅點)
Time of Update: 2017-01-19
下面是每隔一段時間就執行某個操作,直到關閉定時操作:複製代碼 代碼如下:final Handler handler = new Handler(); Runnable runnable = new Runnable(){ @Override public
Time of Update: 2017-01-19
效果如下:BitmapShader 的簡單介紹關於 Shader是什麼,Shader的種類有哪幾種以及如何使用不屬於本文範疇,對這方面不是很瞭解的同學,建議先去學習一下 Shader 的基本使用。BitmapShader主要的作用就是 通過Paint對象,對 畫布進行指定的Bitmap填充,實現一系列效果,可以有以下三種模式進行選擇 1.CLAMP -
Time of Update: 2017-01-19
在無網或網速差的狀態下,沒必要去串連伺服器。你可以使用 ConnectivityManager 來判斷是否連到網路,以及網路類型。判斷是否有網路連接下面的代碼用ConnectivityManager查詢是活動網路連接判斷是否有Internet串連。複製代碼 代碼如下:ConnectivityManager cm =
Time of Update: 2017-01-19
本教程是基於Ubuntu下Android6.0.1源碼以及核心的下載和編譯,記錄一下,以後也就不用自己去找資料,一遍一遍的嘗試了。可以翻牆的,英語好的,直接去AndroidSource.系統內容:Ubuntu14.04LTSAndroid版本:6.0.1重要網址清華大學鏡像AndroidSource下載前的準備安裝OpenJdksudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get install
Time of Update: 2017-01-19
一、前言在閱讀這篇文章之前,首先需要理解幾個東西:1、什麼是Android的冷啟動時間? 冷啟動時間是指使用者從手機案頭點擊APP的那一刻起到啟動頁面的Activity調用onCreate()方法之間的這個時間段。2、在冷啟動的時間段內發生了什嗎?
Time of Update: 2017-01-19
Time of Update: 2017-01-19
一、前言Android 實現衛星式菜單也叫弧形菜單,主要要做的工作如下:1.動畫的處理2.自訂ViewGroup來實現衛星式菜單View(1)自訂屬性 a. 在attrs.xml中定義屬性 b. 在布局中使用自訂屬性 c.
Time of Update: 2017-01-19
本文所述執行個體為一個天氣預報中的android代碼,主要包括了下載和安裝APK、檢查Apk更新、顯示'已經是最新'或者'無法擷取版本資訊'對話方塊、擷取當前用戶端版本資訊、顯示版本更新通知對話方塊、顯示下載對話方塊、判斷是否掛載了SD卡、顯示檔案大小格式:2個小數點顯示等。具體實現代碼如下:import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.
Time of Update: 2017-01-19
有不少朋友都遇到過這種問題,程式執行時切換到後台,然後再重新進入會報異常,本文就這種問題全面講解下SurfaceView的運行機制,瞭解了這些原理你就能自己解決這些問題了。
Time of Update: 2017-01-19
Android開發,觸控無處不在。對於一些
Time of Update: 2017-01-19
1.Activity的生命週期1)多個Activity組成Activity棧,當前活動位於棧頂。我們先來看看各種Activity基類的類圖:當Activity類定義出來之後,這個Activity何時被執行個體化、它所包含的方法何時被調用,這些都不是由開發人員所決定的,都應該由Android系統來決定。下面我們來看一下Activity的生命週期:2.Activity的用法1)啟動、關閉Activity// 首先需要建立啟動的Activity對應的IntentIntent intent = new
Time of Update: 2017-01-19
AsyncTask是一個很常用的API,尤其非同步處理資料並將資料應用到視圖的操作場合。其實AsyncTask並不是那麼好,甚至有些糟糕。本文我會講AsyncTask會引起哪些問題,如何修複這些問題,並且關於AsyncTask的一些替代方案。AsyncTask從Android API 3(1.5 Cupcake)開始,AsyncTask被引入用來協助開發人員更簡單地管理線程。實際上在Android