標籤:Android引進快取的非同步載入全解析度為什麼要緩衝通過映像縮放,我們這樣做是對的非同步載入最佳化的大圖,但現在的App這不僅是一款高清大圖。圖。動不動就是圖文混排。以圖代文,假設這些圖片都載入到記憶體中。必然會OOM。因此,在使用者瀏覽完映像後。應當馬上將這些廢棄的映像回收,可是。這又帶來了另一個問題。也就是當使用者在瀏覽完一次圖片後,假設還要返回去再進行又一次瀏覽,那麼這些回收掉的映像又要又一次進行載入,保不準就要那些無聊到蛋疼的人在那一邊看你回收GC。一邊看你又一次載入。這兩件事情
標籤:iOS開發拓展篇—應用之間的跳轉和資料傳說明:本文介紹app如何開啟另一個app,並且傳遞資料。一、簡單說明建立兩個應用,分別為應用A和應用B.實現要求:在appA的頁面中點擊對應的按鈕,能夠開啟appB這個應用。1.建立兩個應用,分別為A和B.
標籤: 1 <head lang="zh"> 2 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 3 <meta charset="utf-8" /> 4  
標籤:iOS開發拓展篇—CoreLocation簡單介紹一、簡介1.在移動互連網時代,移動app能解決使用者的很多生活瑣事,比如(1)導航:去任意陌生的地方(2)周邊:找餐館、找酒店、找銀行、找電影院 2.在上述應用中,都用到了地圖和定位功能,在iOS開發中,要想加入這2大功能,必須基於2個架構進行開發(1)Map Kit :用於地圖展示(2)Core
標籤:閃屏原因:主要是我們啟動Activity的時候,需要跑完onCreate和onResume;Android系統需要處理一些資料後,才會顯示。按照這種思路,是不是我把初始化的工作盡量減少就可以避免黑屏?事實是,就算你onCreate啥都不做,仍然會閃一下黑屏,因為初始化解析介面時需要一定時間,下面是解決辦法:1、自訂Theme設定背景圖Theme<style name="Theme.AppStartLoad" parent="android:Theme">
標籤:iOS開發拓展篇—音頻處理(音樂播放器4)說明:該文主要介紹音樂播放器實現過程中的一些細節控制。實現的效果: 一、完整的代碼YYPlayingViewController.m檔案 1 // 2 // YYPlayingViewController.m 3 // 20-音頻處理(音樂播放器1) 4 // 5 // Created by apple on 14-8-13. 6 // Copyright (c) 2014年 yangyong. All
標籤:<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /> <!--width=device-width :表示寬度是裝置螢幕的寬度initial-scale=1.0:表示初始的縮放比例minimum-scale=0.5:表示最小的縮放比例maximum-scale=2.
標籤:iOS開發多線程篇—線程間的通訊 一、簡單說明線程間通訊:在1個進程中,線程往往不是孤立存在的,多個線程之間需要經常進行通訊 線程間通訊的體現1個線程傳遞資料給另1個線程在1個線程中執行完特定任務後,轉到另1個線程繼續執行任務 線程間通訊常用方法- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOO
標籤:iOS開發拓展篇—音頻處理(音樂播放器2)說明:該文主要介紹音樂播放介面的搭建。一、跳轉1.跳轉到音樂播放介面的方法選擇 (1)使用模態跳轉(又分為手動的和自動的) (2)使用xib並設定跳轉2.兩種方法的分析 可以使用模態的方法,添加一個控制器,讓這個控制器和音樂播放控制器類進行關聯,脫線,設定標識符且在cell的點擊事件中執行segue即可。 步驟說明: (1)在storyboard中新拖入一個控制器,然後設定和playing控制器類相關聯。 (2)設定
標籤:將十六進位的字串轉化為UIImage 最近寫一個項目,有驗證碼,但是介面返回的並不是驗證碼圖片的URL,而是返回的位元組數組16進位字串。這樣就需要把16進位字串首先位元組數組,其次再把位元組數組轉化為NSData,最後再把NSData轉化為UIImage。其中最重要的是如何把16進位的字串轉換為位元組數組。首先要把位元組數組和16進位關聯起來。1位元組(byte)就是8個位(bit)。一個位就代表一個0或1(即二進位) 。4個位元組成一個十六進位數。這樣就把16
標籤:iOS開發多線程篇—多線程簡單介紹 一、進程和線程1.什麼是進程 進程是指在系統中正在啟動並執行一個應用程式每個進程之間是獨立的,每個進程均運行在其專用且受保護的記憶體空間內 比如同時開啟QQ、Xcode,系統就會分別啟動2個進程通過“活動監視器”可以查看Mac系統中所開啟的進程 2.什麼是線程1個進程要想執行任務,必須得有線程(每1個進程至少要有1條線程)線程是進程的基本執行單元,一個進程(程式)的所
標籤:fill_parent設定一個頂部布局或控制項強制性讓它布滿整個螢幕。wrap_content布局指根據視圖內部內容自動擴充以適應其大小。 1. wrap_content<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="
標籤:iOS開發拓展篇—音頻處理(音樂播放器6)一、圖片處理 說明:Aspect表示按照原來的寬高比進行縮放。Aspectfit表示按照原來的寬高比縮放,要求看到全部圖片,後果是不能完全覆蓋視窗,會留有空白。Aspectfill表示按照原來的寬高比縮放,但只能看到部分圖片。引發的問題:可能會有一部分超出螢幕。所以,如果選擇了Aspectfill模式,那麼需要剪下超出的圖片,在storyboard中也可以進行設定。下面的兩種設定是等效的。(1)在storyboard中進行設定
標籤:iOS開發多線程篇—NSOperation基本操作一、並發數(1)並發數:同時執?行的任務數.比如,同時開3個線程執行3個任務,並發數就是3(2)最大並發數:同一時間最多隻能執行的任務的個數。(3)最?大並發數的相關?方法- (NSInteger)maxConcurrentOperationCount;-
標籤:iOS開發多線程篇—GCD的常見用法一、順延強制1.介紹iOS常見的延時執行有2種方式(1)調用NSObject的方法[self performSelector:@selector(run) withObject:nil afterDelay:2.0];// 2秒後再調用self的run方法 (2)使用GCD函數dispatch_after(dispatch_time(DISPATCH_TIME_NOW,
標籤:iOS開發拓展篇—音頻處理(音樂播放器3)說明:這篇文章主要介紹音頻工具類和播放工具類的封裝。一、控制器間資料傳遞1.兩個控制器之間資料的傳遞第一種方法:self.parentViewController.music=self.music[indexPath.row];不能滿足第二種做法:把整個數組傳遞給它第三種做法:設定一個資料來源,設定播放控制器的資料來源是這個控制器。self.parentViewController.dataSource=self;好處:沒有耦合性,任何
標籤:iOS開發拓展篇—音頻處理(音樂播放器1)說明:該系列文章通過實現一個簡單的音樂播放器來介紹音頻處理的相關知識點,需要重點注意很多細節的處理。一、調整項目的結構,匯入必要的素材 調整後的項目結構如下: 二、建立兩個控制器(1)建立一個控制器,用於展示音樂檔案清單介面,其繼承自UITableViewController (2)建立一個控制器,用於展示播放介面,其繼承自UIViewController (3)在storyboard中,把之前的控制器刪除,換上一個
標籤:iOS開發多線程篇—安全執行緒 一、多線程的安全隱患資源共用1塊資源可能會被多個線程共用,也就是多個線程可能會訪問同一塊資源比如多個線程訪問同一個對象、同一個變數、同一個檔案當多個線程訪問同一塊資源時,很容易引發資料錯亂和資料安全問題樣本一:樣本二:問題代碼: 1 // 2 // YYViewController.m 3 // 05-安全執行緒 4 // 5 // Created by apple on 14-6-23. 6 // Copyright (c)
標籤:硬體加速可以提高渲染效能,但也會消耗更多記憶體。在 APK 版本14以後,硬體加速預設開啟。硬體加速並不支援所有2D繪圖操作,詳情可以查看官方文檔。 個人經驗中,由於應用裡大量使用圖片和 animation,以及頻繁的建立和回收 bitmap,於是應用不頻繁的出現過圖片錯亂的問題。W/Adreno-ES20﹕ <gl_draw_error_checks:580>: GL_INVALID_OPERATIOND/OpenGLRenderer﹕ GL error from
標籤:iOS開發拓展篇—xib中關於拖拽手勢的潛在錯誤一、錯誤說明自訂一個用來封裝工具條的類搭建xib,並添加一個拖拽的手勢。 主控制器的代碼:載入工具條封裝工具條以及手勢拖拽的監聽事件 此時運行程式,程式直接崩潰,報錯如下: 說明:手勢不會有superView方法,superView是UIView的方法,說明我們錯誤的把手勢對象當成是UIView來用了。調試查看出現問題的原因: 出現問題的原因: 說明:通過lastObject取出來的對象是手勢,而不是xib,因此出現上面的