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