這個是看知乎的時候發現的一個問題,感覺挺有意思,就將自己遇到的坑記錄下來。1、Andorid L theme colorPrimary 不能使用帶有alpha的顏色值,否則會有異常拋出, 直接判斷了是否alpha是否等於0或者255,其他都會異常@Overrideprotected void onApplyThemeResource(Resources.Theme theme, int resid,boolean first) {if (mParent == null)
在前一期中,我們做了懸浮頭部的兩個tab切換和下拉重新整理效果,後來項目中要求改成三個tab,當時就能估量了一下,如果從之前的改,也不是不可以,但是要互相記住的狀態就太多了,很容易出現錯誤。就決定重新實現一下這個效果,為此先寫了一個demo,這期間項目都已經又更新了兩個版本了。demo還木有變成文章。之前的版本中是採用了一個可以下拉重新整理的listview,之後在listview中添加了兩個頭部,並且在該布局上的上面用了一個一模一樣的切換tab,如果沒有看過前面版本的,可以看看前一個版本,Li
1、 題外話 相信大家對LayoutInflate都不陌生,特別在ListView的Adapter的getView方法中基本都會出現,使用inflate方法去載入一個布局,用於ListView的每個Item的布局。Inflate有三個參數,我在初學Android的時候這麼理解的:(1)對於Inflate的三個參數(int resource, ViewGroup root, boolean attachToRoot);(2)如果inflate(layoutId,
本文執行個體為大家分享了Android自訂載入控制項,第一次小人跑動的載入效果眼前一亮,相比傳統的PrograssBar高大上不止一點,於是走起,自訂了控制項LoadingView去實現動態效果,可直接在xml中使用,具體實現如下package com.*****.*****.widget; import android.content.Context;import android.graphics.drawable.AnimationDrawable;import
本文為大家分享了Android相機、圖冊基本demo,供大家參考,具體內容如下package com.example.democamera; import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import
預覽效果圖:需要許可權:<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 設定檔:AndroidManifest.xml<activityandroid:name="com.myself.news.activity.GuideActivity"android:label="@string/title_activity_guide" ><intent-
上一篇《學習理解Android菜單Menu操作》簡單介紹了一下Android的菜單,今天讓我們看一下如何通過代碼建立和響應最常用的選項菜單(options menu)。一、建立options menu之前提到,Android的activity已經為我們提前建立好了android.view.Menu對象,並提供了回調方法onCreateOptionsMenu(Menu menu)供我們初始化菜單的內容。該方法只會在選項菜單第一次顯示的時候被執行,如果你需要動態改變選項菜單的內容,請使用
SimpleAdapter,跟名字一樣,一個簡單的適配器,既為簡單,就只是被設計來做簡單的應用的,比如待用資料的綁定,不過仍然有自訂的空間,比如說在每一個ListItem中加一個按鈕並添加響應事件.首先還是先看一下SimpleAdapter的定義吧,直接翻譯下SDK doc
效果和代碼都非常直觀:執行個體1:TimePicker<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
一、什麼是相對布局相對布局是另外一種控制項擺放的方式相對布局是通過指定當前控制項與兄弟控制項或者父控制項之間的相對位置,從而達到相對的位置二、為什麼要使用相對布局相對於線性布局ui效能好三、相對布局的兩組常用屬性值為某個存在控制項id:(1)android:layout_below放在某個存在id控制項的下邊緣(也就是當前控制項的上邊對齊到某個id控制項的下邊緣(2)android:layout_above放在某個存在id控制項的上邊緣(也就是當前控制項的下邊緣對齊到某個id控制項的上邊緣(3)
Android中的Service是用於後台服務的,當應用程式被掛到背景時候,問了保證應用某些組件仍然可以工作而引入了Service這個概念,那麼這裡面要強調的是Service不是獨立的進程,也不是獨立的線程,它是依賴於應用程式的主線程的,也就是說,在更多時候不建議在Service中編寫耗時的邏輯和操作,否則會引起ANR。那麼我們當我們編寫的耗時邏輯,不得不被service來管理的時候,就需要引入IntentService,IntentService是繼承Service的,那麼它包含了Servic
一,效果圖。二,工程圖。 三,代碼。RootViewController.h#import <UIKit/UIKit.h>@interface RootViewController : UIViewController<UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource>{ UIScrollView *_scrolView; UITableView *_tableView;
本文執行個體為大家分享了Android建立發送和接收簡訊應用的簡單實現過程,供大家參考,具體內容如下一、接收簡訊項目的結構如下:一個簡單的接收和傳送簡訊的功能1、定義一個接收簡訊的廣播:當手機接收到一條簡訊的時候,系統會發出一條值為android.provider.Telephony.SMS_RECEIVED 的廣播,這條廣播裡攜帶著與簡訊相關的所有資料。// 接收簡訊的廣播class MessageReceiver extends BroadcastReceiver { @Override
Activity回顧activity是android程式中最重要的組件之一,它是使用者與android使用者互動的主要組件,類似於傳統型程式的圖形介面。android程式大致可以分為看的見的組件和看不見的service。看得見的組件主要就是在Activity中定義,看不見的service,包括service,BroadCastReceiver,ContentProvider等等,這是後話。今天先來大致瞭解一下activity。可以理解activity為盛放組件的容器,和使用者互動的組件都要放在A
什麼是View?實現View滑動的方式有哪些?1. 關於View我們需要知道的(1)什麼是View? Android中的View類是所有UI控制項的基類(Base
本篇文章我們來一起寫一個最基本的Android非同步網路請求架構,藉此來瞭解下Android中網路請求的相關知識。由於個人水平有限,文中難免存在疏忽和謬誤,希望大家可以指出,謝謝大家。1. 同步網路請求 以HTTP的GET請求為例,我們來介紹一下Android中一個基本的同步請求架構的實現。直接貼代碼:public class HttpUtils { public static byte[] get(String urlString) {
RecyclerView是什嗎?筆者個人看法,RecyclerView只是一個對ListView的升級版,這個升級的主要目的是為了讓這個view的效率更高,並且使用更加方便。我們知道,ListView通過使用ViewHolder來提升效能。ViewHolder通過儲存item中使用到的控制項的引用來減少findViewById的調用,以此使ListView滑動得更加順暢。但這種模式在listview中即使不使用也無妨。換言之,在ListView中你不考慮複用的問題也可以,只是你犧牲了記憶體來方便
一、概述一般大量圖片的載入,比如GridView實現手機的相簿功能,一般會用到LruCache,線程池,任務隊列等;那麼非同步訊息處理可以用哪呢?1、用於UI線程當Bitmap載入完成後更新ImageView2、在圖片載入類初始化時,我們會在一個子線程中維護一個Loop執行個體,當然子線程中也就有了MessageQueue,Looper會一直在那loop停著等待訊息的到達,當有訊息到達時,從任務隊列按照隊列調度的方式(FIFO,LIFO等),取出一個任務放入線程池中進行處理。簡易的一個流程:當需
一、概述Handler 、 Looper 、Message 這三者都與Android非同步訊息處理線程相關的概念。那麼什麼叫非同步訊息處理線程呢?非同步訊息處理線程啟動後會進入一個無限的迴圈體之中,每迴圈一次,從其內部的訊息佇列中取出一個訊息,然後回調相應的訊息處理函數,執行完成一個訊息後則繼續迴圈。若訊息佇列為空白,線程則會阻塞等待。說了這一堆,那麼和Handler 、 Looper
0、基礎回顧PropertyAnimation,屬性動畫,顧名思義就是利用對象的屬性變化形成動畫的效果。屬性動畫的類可以用Animator這個抽象類別來表示,通常使用它的子類:AnimatorSet和ValueAnimator,同時ValueAnimator有兩個子類分別是ObjectAniamtor和TimeAnimator。定義屬性動畫的XML資源的時候通常可以是如下三個元素之一作為根項目:<set>元素:該資源元素代表的是AniamtorSet類,這個類可以包含<set&