Android QuickContactBadge聯繫人快捷標識

public class
QuickContactBadge
extends ImageView
implements View.OnClickListener
java.lang.Object
   ↳	android.view.View
 	   ↳	android.widget.ImageView
 	 	   ↳	android.widget.QuickContactBadge

android.widget.QuickContactBadge,譯爲聯繫人快捷標識,具體效果爲顯示一張聯繫人圖片,點一下彈出與之相關的快捷功能欄,如打電話、發短信等java

公共方法:android

public void assignContactFromEmail (String emailAddress, boolean lazyLookup)
//指定聯繫人的電子郵箱地址。(注:它會先搜索這個號碼,若是沒有會提醒你是否添加到聯繫人
//參數 :  emailAddress:聯繫人的電子郵箱地址lazyLookup:若是設置爲true,將不//會當即查找這個郵箱地址,直到View被點擊時。(注:是否延遲匹配電子郵件)

public void assignContactFromPhone (String phoneNumber, boolean lazyLookup)
//爲聯繫人指定一個電話號碼
//參數 
//phoneNumber : 聯繫人的電話號碼
//lazyLookup  : 若是設置爲true,將不會當即查找這個電話號碼,直到View被點擊時。

public void assignContactUri (Uri contactUri)

//指定和QuickContactBadge關聯的聯繫人URI。注意,這裏只是顯示QuickContact
//窗口,並不爲你綁定聯繫人圖片。
//參數 contactUri       CONTENT_URI或CONTENT_LOOKUP_URI其中一種風格的URI.

public void onClick (View v)
//當View被點擊時調用。

//參數     v      被點擊的View.

public void setExcludeMimes (String[] excludeMimes)

//設置一組要排除不顯示的MIMI類型列表。例如,能夠隱藏Contacts.CONTENT_ITEM_TYPE類型的圖標。(注:若是像以下設置:

setExcludeMimes(new String[] { Contacts.CONTENT_ITEM_TYPE })

//即隱藏了上面截圖的第二個,僅顯示電話和短信兩個圖標)

public void setMode (int size)

//設置QuickContact的窗口模式。以下選項:MODE_SMALL、MODE_MEDIUM、//MODE_LARGE。(注:默認爲QuickContact.MODE_MEDIUM,設置爲MODE_LARGE時會
//同時顯示聯繫人名稱)

使用QuickContactBadge並不須要加入READ_CONTACTS權限。可是在無權限的狀況下,若是聯繫人在通信錄裏,則會直接進入查看聯繫人的界面,而不會有「撥打、查看、短信」三個選項。加入權限後則會出現。

Android: 彈出快捷聯繫人操做對話框
app

題目所說的快捷操做對話框在android的不少地方都有,例如點擊短信條目中聯繫人頭像,就會彈出三個操做選項:電話、查看、短信。要實現這樣的操做,主要是經過QuickContactBadge這個view。
ide

關於這個類的使用,網上資料不多。開始我走了一個彎路,覺得這個類是負責那個對話框的。其實不是,這個類只是一個普通的圖片view,點擊它就會彈出這裏所說的對話框。ui

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:paddingLeft="0dip"
    android:paddingRight="9dip"
    android:layout_height= "wrap_content"
    android:minHeight="48dip">

<QuickContactBadge         
    android:id="@+id/photo"        
    android:layout_width="54dip"        
    android:layout_height="57dip"        
    android:layout_marginLeft="5dip"        
    android:background="#ffffff"        
    style="?android:attr/quickContactBadgeStyleWindowSmall"  /> 

</RelativeLayout>

import java.util.ArrayList;   
import java.util.HashMap;   
import java.util.List;   
import java.util.Map;   
import android.app.Activity;   
import android.os.Bundle;   
import android.provider.ContactsContract.QuickContact;
import android.view.View;   
import android.widget.AdapterView;   
import android.widget.AdapterView.OnItemClickListener;   
import android.widget.ListView; 
import android.widget.QuickContactBadge;

public class MyQuickContactBadgeActivity extends Activity {
  
     public void onCreate(Bundle savedInstanceState) {   
         super.onCreate(savedInstanceState);   
         setContentView(R.layout.main);   
            
         QuickContactBadge mPhotoView;    
         mPhotoView = (QuickContactBadge) findViewById(R.id.photo);    
         mPhotoView.assignContactFromPhone("1899847822", true);   
         mPhotoView.setMode(QuickContact.MODE_SMALL);  
     }   
        
}

運行的初始畫面:spa


點擊上面的白色按鈕進入下面界面:code

打電話顯示的界面:xml

相關文章
相關標籤/搜索