android.widget.QuickContactBadge

来源:互联网 发布:php bug管理系统 编辑:程序博客网 时间:2024/04/27 08:38
android.widget.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)

 指定联系人的电子邮箱地址。(注:它会先搜索这个号码,如果没有会提醒你是否添加到联系人,参见文章1)      

    参数

      emailAddress:联系人的电子邮箱地址

      lazyLookup:如果设置为true,将不会立即查找这个邮箱地址,直到View被点击时。(注:是否延迟匹配电子邮件)

 

         public void assignContactFromPhone (String phoneNumber, boolean lazyLookup)

         为联系人指定一个电话号码。(注:参见文章1

      参数

                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: 弹出快捷联系人操作对话框

题目所说的快捷操作对话框在android的很多地方都有,例如点击短信条目中联系人头像,就会弹出三个操作选项:电话、查看、短信。要实现这样的操作,主要是通过QuickContactBadge这个view。
关于这个类的使用,网上资料很少。开始我走了一个弯路,以为这个类是负责那个对话框的。其实不是,这个类只是一个普通的图片view,点击它就会弹出这里所说的对话框。

 

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>

 

代码!!

 

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.widget.QuickContactBadge - 夏天的风 - FreeSimpleHappy

 

点击上面的白色按钮进入下面界面

android.widget.QuickContactBadge - 夏天的风 - FreeSimpleHappy

 

打电话显示的界面

android.widget.QuickContactBadge - 夏天的风 - FreeSimpleHappy
0 0
原创粉丝点击