android.widget.QuickContactBadge:译为联系人快捷标识,具体效果为显示一张联系人图片,点一下弹出与之相关的快捷功能栏,如打电话、发短信等
公共方法:
//指定联系人的电子邮箱地址。(注:它会先搜索这个号码,如果没有会提醒你是否添加到联系人
//参数 : emailAddress:联系人的电子邮箱地址lazyLookup:如果设置为true,将不//会立即查找这个邮箱地址,直到View被点击时。(注:是否延迟匹配电子邮件)
l public void assignContactFromEmail (String emailAddress, boolean lazyLookup)
//为联系人指定一个电话号码
//phoneNumber : 联系人的电话号码
//lazyLookup : 如果设置为true,将不会立即查找这个电话号码,直到View被点击时。
l public void assignContactFromPhone (String phoneNumber, boolean lazyLookup)
//指定和QuickContactBadge关联的联系人URI。注意,这里只是显示QuickContact
//窗口,并不为你绑定联系人图片。
//参数 contactUri CONTENT_URI或CONTENT_LOOKUP_URI其中一种风格的URI.
l public void assignContactUri (Uri contactUri)
//当View被点击时调用。
//参数 v 被点击的View.
l public void onClick (View v)
//设置一组要排除不显示的MIMI类型列表。例如,可以隐藏Contacts.CONTENT_ITEM_TYPE类型的图标。(注:如果像如下设置:
l public void setExcludeMimes (String[] excludeMimes)
//即隐藏了上面截图的第二个,仅显示电话和短信两个图标)
l setExcludeMimes(new String[] { Contacts.CONTENT_ITEM_TYPE })
//设置QuickContact的窗口模式。如下选项:MODE_SMALL、MODE_MEDIUM、//MODE_LARGE。(注:默认为QuickContact.MODE_MEDIUM,设置为MODE_LARGE
//时会,同时显示联系人名称)
l public void setMode (int size)
使用QuickContactBadge并不需要加入READ_CONTACTS权限。但是在无权限的情况下,如果联系人在通讯录里,则会直接进入查看联系人的界面,而不会有“拨打、查看、短信”三个选项。加入权限后则会出现。
Android: 弹出快捷联系人操作对话框
题目所说的快捷操作对话框在android的很多地方都有,例如点击短信条目中联系人头像,就会弹出三个操作选项:电话、查看、短信。要实现这样的操作,主要是通过QuickContactBadge这个view。
关于这个类的使用,网上资料很少。开始我走了一个弯路,以为这个类是负责那个对话框的。其实不是,这个类只是一个普通的图片view,点击它就会弹出这里所说的对话框。
XML:
<QuickContactBadge
android:id="@+id/photo"
android:layout_width="54dip"
android:layout_height="57dip"
android:layout_marginLeft="5dip"
android:background="#ffffff"
style="?android:attr/quickContactBadgeStyleWindowSmall" />
Activity:
QuickContactBadge mPhotoView;
mPhotoView = (QuickContactBadge) findViewById(R.id.photo);
mPhotoView.assignContactFromPhone("1899847822", true);
mPhotoView.setMode(QuickContact.MODE_SMALL);