怎么把短信头像,联系人头像大全删除

android 系统(21)
android FrameWork(15)
修改 选择 添加联系人
主界面中的控件
RecipientsEditor 继承
RecipientEditTextView
查询了以后才知道这是 系统 framework层的一个控件(后查看androd.mk 文件确实有引用)
framework/opt/chips/src/com/android/ex/chips
Mms Email Calanda
打log 看日志信息,
1.当在控件上 默认填写 联系人首字母的时候,他会取数据库查询相关数据,显示(能显示 联系人头像,名称),点击选择后 也能显示 联系人头像和名称
2. 当点击控件右边的选择按钮时,跳入 联系人模块,去选择,但是选择完成后,无联系人头像的信息
一开是判断的是,头像数据在
onAcitivtyresult 的返回结果中,没有返回
首先去看 framework层 这个系统控件 显示头像的原理
第一种方式, 他在 你输入首字母时,会出来选择列表( 有 头像,联系人名称,电话), 点击确定后会展示 ( 头像,联系人名称)
1.显示的联系人集合列表 其实是
ContactDropdownLayouter
framework的 DropdownChipLayouter
(数据的查询是在adapter中进行的)
调用继承的方法
protected void bindTextToView(CharSequence text, TextView view) {
protected void bindIconToView(boolean showImage, RecipientEntry entry, ImageView view,
AdapterType type) {
找到了点击方法
RecipientsEditor 中的
onItemClick
public void onItemClick(AdapterView&?& parent, View view, int position, long id) {
super.onItemClick(parent, view, position, id);
if (mOnSelectChipRunnable != null) {
mOnSelectChipRunnable.run();
其实 super.onItemClick(parent, view, position, id); 这个才是重点的方法
RecipientEditTextView 的选择点击事件,
进入 framework 控件中的
onItemClick 方法
public void onItemClick(AdapterView&?& parent, View view, int position, long id) {
if (position & 0) {
final int charactersTyped = submitItemAtPosition(position);
if (charactersTyped & -1 && mRecipientEntryItemClickedListener != null) {
mRecipientEntryItemClickedListener
.onRecipientEntryItemClicked(charactersTyped, position);
进入 submitItemAtPosition 中的 createChip()
进入 createChip()
中的核心方法 进行图片的创建和绘制, 完成后,变成 SpannableString 进行返回
final SpannableString
chipText = new SpannableString(displayText)
// create background and text and usericon
DrawableRecipientChip chip = constructChipSpan(entry)
chipText.setSpan(chip, 0, textLength,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
chip.setOriginalText(chipText.toString())
chip.setOriginalText(chipText.toString())
第二种方式, 就先看有没有img的数据获取到了
在主activity 中onActivityResult
先清理之前的数据 asyncDeleteDraftSmsMessage() 进行数据处理,获取数据
processPickResult()
processAddRecipients() -& list = ContactList.blockingGetByUris(buildUris(keySet, newPickRecipientsCount));
Contact.java
blockingGetByUris()
Contact contact = Contact.get(uri.getSchemeSpecificPart(), true);
updateContact(c)中
调用 Contact entry = getContactInfo(c);
getContactInfo()
中 调用 getContactInfoForPhoneNumber(strippedNumber);
进入 getContactInfoForPhoneNumber()
去获取了数据并放入 实体
if (cursor.moveToFirst()) {
fillPhoneTypeContact(entry, cursor);
} finally {
cursor.close();
然后就要显示了
mRecipientsEditor.populate(list);
// Set value for mRecipientsPickList and
// mRecipientsWatcher will update the UI.
mRecipientsPickList =
updateTitle(list);
在populate方法中, 将获取到的数据, for循环, 调用 framework控件的 append 方public void
public void populate(ContactList list) {
if (list.size() == 0) {
setText(null);
setText("");
for (Contact c : list) {
CharSequence charSequence = contactToToken(c);
if (charSequence != null && charSequence.length() & 0) {
byte[] drawable = c.getMAvatarData();
setMyPhotoBytes(drawable);
append( charSequence+ ", ");
有 存取img的变量 byte[] , 添加一个外部能够获取到的方法
在framework层 控件添加 (因为 framework层封装好的控件,人家有自己的实体类, 在显示栏生成 图片和 文字组合的时候,就会判断尸体类中的img 是否有值,有就添加,没有就添加默认的灰色图片)能够赛入img 的方法 ,
一开始很单纯,确实新写了一个方法, 在framework中的控件中 接受 byte[]
img 的数据, 最后发现选择一个人的时候,是正常的,选择多人的时候,后面人的图片大家都会一样基本,并且是最后一个人的头像。
原因就是 :
异步线程了,当img赛入后, 第一个联系人还没创建头像的时候, 又开始赛入了图片,就把第一个 byte[] img 接收的值改变了,
最后,跟着代码再看, 还好。 他其中有个
for 循环添加 text 和 background 的方法,
这样我就定义了一个list
接收数据的时候 add 就好了。 在for 循环中取出来, 塞入 framework 控件要绘制时的
实体中,这样实体有数据了, 就可以显示头像了
handlePendingChips()
createIconReplacementChip(tokenStart, tokenEnd, editable, i & CHIP_LIMIT
|| !mShouldShrink, wtByte.get(i))
RecipientEntry entry = createTokenizedEntry(token)
entry.setPhotoBytes(icon)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:215752次
积分:4750
积分:4750
排名:第4868名
原创:230篇
转载:65篇
评论:103条
Android交流群号: 希望大家能在一起交流和学习。
(6)(14)(6)(4)(1)(2)(25)(16)(2)(2)(7)(7)(5)(10)(30)(14)(7)(7)(18)(5)(2)(1)(4)(3)(3)(1)(3)(3)(4)(8)(9)(5)(10)(14)(15)(20)(7)查看: 825|回复: 10
注册时间最后登录阅读权限90积分40330精华23帖子
论坛元老, 积分 40330, 距离下一级还需 9959669 积分
明明在联系人里设置了头像的,在短信里不显示呢?顺便求个好看点得短信软件
注册时间最后登录阅读权限90积分113457精华0帖子
论坛元老, 积分 113457, 距离下一级还需 9886542 积分
我也觉着短信界面太丑了
注册时间最后登录阅读权限90积分113164精华0帖子
论坛元老, 积分 113164, 距离下一级还需 9886835 积分
我觉得还不错啊,联系人头像也能显示的,黑蓝色的主调看着眼不累
注册时间最后登录阅读权限90积分112366精华0帖子
论坛元老, 积分 112366, 距离下一级还需 9887633 积分
你刷的是22号出的那个版本还是最新的?为啥我的没头像呀!!怎么弄?
注册时间最后登录阅读权限90积分112924精华0帖子
论坛元老, 积分 112924, 距离下一级还需 9887075 积分
回复 3# a宇
我发现短信里的联系人显示的是SIM卡中的信息,所以没图像,怎样弄成显示手机中的图像呀?
注册时间最后登录阅读权限90积分112722精华0帖子
论坛元老, 积分 112722, 距离下一级还需 9887277 积分
有图像啊!
注册时间最后登录阅读权限90积分113067精华0帖子
论坛元老, 积分 113067, 距离下一级还需 9886932 积分
回复 3# a宇
& & 你是怎么设置的啊,为什么我的都没有显示头像啊
注册时间最后登录阅读权限90积分112793精华0帖子
论坛元老, 积分 112793, 距离下一级还需 9887206 积分
回复 6# iamrosa1989
进入手机联系人程序,菜单,第一个,要显示的联系人,点击击一下手机,就好了,建议删除sim卡里面的联系人,安卓本身就对sim联系人就不在乎还有4.0的联系人头像比较大,你要是之前用什么其他软件或者电脑备份的联系人在手机上会显示不出,或者很模糊,建议自己一个个重新设置
注册时间最后登录阅读权限90积分112196精华0帖子
论坛元老, 积分 112196, 距离下一级还需 9887803 积分
感谢您解答问题!
注册时间最后登录阅读权限90积分113175精华0帖子
论坛元老, 积分 113175, 距离下一级还需 9886824 积分
回复 8# a宇
果然是因为没有删掉SIM卡中的联系人,唉~ 太麻烦了,不显示就不显示吧
最新摩托罗拉手机
手机品牌报价大全
···············
···············
Powered by您所在的位置: &
iOS8应用程序切换器中的最近通话联系人头像怎么删除
编辑:xfront
来源:下载吧
阅读2042次
& & & &肯定有不少小伙伴已经奋力地把自己的iPhone、iPad升级更新到iOS系统了吧,iOS8相比iOS7虽然没有太大变化,但UI上还是有了不少变化,比如很多朋友所吐槽的应用切换界面最近使用就多出的联系人头像。那最近使用的联系人头像要怎么删除不显示呢?iOS8系统其实有这个选项的。下面就随小编来看看吧。iOS8多任务栏卡片上方联系人头像不显示方法1.依次打开设置&邮件、通讯录、日历中,找到“在应用程序切换器中显示”。2.将“最近通话”选项关闭,如有个人收藏联系人,也可将其关闭显示;3.此时双击主屏幕按钮,打开多任务栏,上方就不再会显示联系人头像了。
很好看(40)
ios8问题汇总
ios8新功能
ios8怎么玩?玩转ios8
ios8激活ios8升级更新教程
热门关键字

我要回帖

更多关于 怎么设置联系人头像 的文章

 

随机推荐