Android QuickContactBadge

分享到:

QuickContactBadge,译为联系人快捷标识,具体效果为显示一张联系人图片,点一下弹出与之相关的快捷功能栏,如打电话、发短信等。

类结构:

java.lang.Object

	android.view.View

		android.widget.ImageView

			android.widget.QuickContactBadge 

效果如下图:

在andorid自带的ApiDomos的例子中有这个的代码:App/Activity/QuickContacktsDemo。注意需要android.permission.READ_CONTACTS权限,并且联系人里面有数据,并且联系人需要有手机号码,不然无法显示。

常用方法:

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权限。但是在无权限的情况下,如果联系人在通讯录里,则会直接进入查看联系人的界面,而不会有"拨打、查看、短信"三个选项。加入权限后则会出现。

QuickContactBadge实例:(本例源码来自网络)

布局XML代码:

<?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>

JAVA代码:

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);  
     }   
        
}

运行效果如下图:

点击界面中的白色区块(可以在此处放一张图片表示用户头像)显示以下内容:

到这步就可以实现拨打电话的快捷操作了

昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例