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