题目所说的快捷操作对话框在android的很多地方都有,例如点击短信条目中联系人头像,就会弹出三个操作选项:电话、查看、短信。要实现这样的操作,主要是通过QuickContactBadge这个view。
关于这个类的使用,网上资料很少。开始我走了一个弯路,以为这个类是负责那个对话框的。[color=red]其实不是,这个类只是一个普通的图片view,点击它就会弹出这里所说的对话框[/color]。
所以,只需要在我们的界面上加入这个view,然后在代码里设置其属性即可:
[code]
<QuickContactBadge
android:id="@+id/photo"
android:layout_width="54dip"
android:layout_height="57dip"
android:layout_marginLeft="5dip"
android:background="#ffffff"
style="?android:attr/quickContactBadgeStyleWindowSmall" />
[/code]
[color=red]
代码里最重要的是给这个view关联一个联系人的uri
[/color]
[code]
QuickContactBadge mPhotoView;
mPhotoView = (QuickContactBadge) findViewById(R.id.photo);
mPhotoView.assignContactFromPhone("123", true);
mPhotoView.setMode(QuickContact.MODE_SMALL);
[/code]
如上,即可完成。
如果关联的联系人不在通讯录里,就会弹出提示加入通讯录的对话框。
12.29.2010 update
[color=red]
使用QuickContactBadge并不需要加入READ_CONTACTS权限。但是在无权限的情况下,如果联系人在通讯录里,则会直接进入查看联系人的界面,而不会有“拨打、查看、短信”三个选项。加入权限后则会出现。[/color]
关于这个类的使用,网上资料很少。开始我走了一个弯路,以为这个类是负责那个对话框的。[color=red]其实不是,这个类只是一个普通的图片view,点击它就会弹出这里所说的对话框[/color]。
所以,只需要在我们的界面上加入这个view,然后在代码里设置其属性即可:
[code]
<QuickContactBadge
android:id="@+id/photo"
android:layout_width="54dip"
android:layout_height="57dip"
android:layout_marginLeft="5dip"
android:background="#ffffff"
style="?android:attr/quickContactBadgeStyleWindowSmall" />
[/code]
[color=red]
代码里最重要的是给这个view关联一个联系人的uri
[/color]
[code]
QuickContactBadge mPhotoView;
mPhotoView = (QuickContactBadge) findViewById(R.id.photo);
mPhotoView.assignContactFromPhone("123", true);
mPhotoView.setMode(QuickContact.MODE_SMALL);
[/code]
如上,即可完成。
如果关联的联系人不在通讯录里,就会弹出提示加入通讯录的对话框。
12.29.2010 update
[color=red]
使用QuickContactBadge并不需要加入READ_CONTACTS权限。但是在无权限的情况下,如果联系人在通讯录里,则会直接进入查看联系人的界面,而不会有“拨打、查看、短信”三个选项。加入权限后则会出现。[/color]